星期二, 2月 24, 2009

AS3:預載程式( Preloader )

Flash相對於一般的網頁資料而言,檔案大小算是比較龐大的!因此我們可以使用「預載(preload)」的方式,以百分比的數值,讓朋友知道大概要等多久才會看得到東西!感謝Lee Brimelow的gotoAndLearn.com,讓我們可以用ActionScript 3.0的語法輕鬆的預載Flash!

預載的方式,只需兩個時間軸圖層(Timeline Layer):一個圖層(圖層名稱設為:text)置入「動態文字」,並設定好文字的樣式與大小,物件名稱(Instance Name)設為:percent;另一圖層(圖層名稱設為:actions)為Actionscript圖層,輸入下列ActionScript程式碼:
//定義預載器為:myLoader
var myLoader:Loader = new Loader();

//使用自訂功能:loop 監聽myLoader的載入進度
myLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, loop);
//使用自訂功能:done 監聽myLoader是否已完成載入
myLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, done);
//用myLoader載入外部檔案:content.swf
myLoader.load(new URLRequest("content.swf"));

function loop(e:ProgressEvent):void {
//宣告變數perc的值為:已載入位元大小/總位元大小
var perc:Number = e.bytesLoaded / e.bytesTotal;
//將perc的最小整數值轉為為字串,並指定給percent
percent.text = Math.ceil(perc*100).toString();
}

function done(e:Event):void {
//Lee用removeChildAt(0)移除「第一個」在舞台上的物件,也就是動態文字:percent
//但我認為用removeChild()來移除特定物件名稱會比較明確
removeChild(percent);
//清除動態文字percent的內容
percent = null;
//把myLoader載入的內容放上舞台(Stage)
addChild(myLoader);
}

沒有留言: