How to make a cool "Now Loading" ??

by yoneken
How to make a cool "Now Loading" ??

please teach me !!
"http://yoneken.sakura.ne.jp/lib/NowLoadingTest.cgi"
this file spends over 10 seconds to download.
♥0 | Line 70 | Modified 2009-06-18 23:36:27 | MIT License
play

ActionScript3 source code

/**
 * Copyright yoneken ( http://wonderfl.net/user/yoneken )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/bpQn
 */

// please teach me !!
// "http://yoneken.sakura.ne.jp/lib/NowLoadingTest.cgi"
// this file spends over 10 seconds to download.

package {
	[SWF(width="465", height="465", backgroundColor="#ffffff", frameRate="30")]
	import flash.display.Sprite;
	import flash.events.*;
	import flash.net.*;
	import flash.system.Security;
	import flash.text.*;
	import flash.utils.*;

	public class NowLoading extends Sprite
	{
		private var textLayer:Sprite = new Sprite();
		private var textFormat:TextFormat = new TextFormat();
		private var textField:TextField = new TextField();
		private var message:String = "Now Loading...";
		private var num:uint = 0;
		private var loader:URLLoader = new URLLoader();
		private var loaded:Boolean = false;
		public function NowLoading()
		{
			textLayer.addChild(textField);
			stage.addChild(textLayer);
 
			Security.loadPolicyFile("http://yoneken.sakura.ne.jp/lib/crossdomain.xml"); 
			
			addEventListener(Event.ENTER_FRAME, loop);

			loader.addEventListener(Event.COMPLETE, this.onDataLoaded);
			loader.addEventListener(IOErrorEvent.IO_ERROR, this.ioError);
			loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, this.securityError);
			loader.load(new URLRequest("http://yoneken.sakura.ne.jp/lib/NowLoadingTest.cgi"));
		}
		private function loop(e:Event):void{
			if(!loaded){
				switch(num){
					case 0: message = "Now Loading"; num++; break;
					case 10: message = "Now Loading."; num++; break;
					case 20: message = "Now Loading.."; num++; break;
					case 30: message = "Now Loading..."; num++; break;
					case 40: num=0;
					default: num++;
				}
			}
			setMessage(message, "normal", 0xFF0000);
		}
		private function onDataLoaded(e:Event):void{
			loaded = true;
			message = "Complete !!";
		}
		private function ioError(e:IOErrorEvent):void{
			loaded = true;
			message = "An IO Error occured.";
		}
		private function securityError(e:SecurityErrorEvent):void{
			loaded = true;
			message = "An Security Error occured.";
		}
		private function setMessage(mes:String,blend:String,hex:Number):void{
			textFormat.size = 40
			textFormat.font="Arial"
			textFormat.align = TextFormatAlign.CENTER;
			textFormat.color=hex
			
			textField.defaultTextFormat = textFormat;
			textField.autoSize=TextFieldAutoSize.LEFT
			textField.x =0
			textField.y = 0
			textField.text=mes
			
			textLayer.alpha=0.5
			textLayer.blendMode=blend
			textLayer.x=stage.stageWidth/2-textField.width/2
			textLayer.y=stage.stageHeight/2-textField.height/2
		}
	}
}