返回首頁

在FLASH中制作預加載進度條

時間:2010-07-11 16:17來源:知行網www.aotfjk.live 編輯:麥田守望者

剛開始學習flash的人對flash中的進度條都充滿了好奇,經常有人問 進度條怎么編寫的問題。

在這里,我對進度條的編寫作了一些總結,希望對有需求的朋友有所幫助,特別是那些初學者,希望他們在讀完這篇文章后有所收獲。當然,對那些高手來說未必沒有一點用處,也許會有些意外收獲喲。

注意:具體問題具體分析,并不保證所有情況下都適用

言歸正傳,從最簡單的開始

所謂最簡單的其實就是擺放那里的一個假的進度條,你可以作一個mc后者直接在貞里畫,把它放在動畫的最前面就行了,哈哈沒想到吧,其實這種方法在早期swf文件比較小的情況下,確實是個不錯的選擇,但隨著flash技術的發展,以及swf文件體積的大增,這種方法基本上已經被棄用。這里就當是一個小插曲讓大家放松一下,其實做進度條沒什么難的,接下來我們正是開始用as編寫進度條。

首先我們來學習一下單一flash文件內部加載進度條的制作:

0,將要加載進度條的文件打開

1,將所有放置元件的的層在時間軸上的貞,向后移兩貞(當然如果你沒有做其他的動畫,就直接插入兩個關鍵貞就完了)

2,在第一貞處放置進度條元件,在這里我們是用一個名為preloader的mc(一個長方形的元件,記住注冊點在左,或左上角)

3,在第一貞處添加代碼

var amountLoaded:Number = _root.getBytesLoaded()/_root.getBytesTotal();
prelaoder._xscale = amountLoaded*100;//進度條的寬度

//當然你也可以在這里加一些動態文本之類的標示白分別什么的,在此不再贅述

4,在第二貞處加如下代碼

if(_root.getBytesLoaded() == _root.getBytesTotal()){
gotoAndPlay(3);//播放結束,繼續后面動畫
}else{
gotoAndPlay(1);//播放未結束,繼續回第一貞
}

到此,第一種用代碼加載進度條的方法就完成了,很簡單吧。

第一種方法這么簡單,為什么還要繼續說別的方法呢這里我們就要說到上一種方法的缺點了

問題出現了:如果在舞臺上添加了組件或其他延展類(具體問題具體分析),前面的方法將不起作用。

解決辦法:將組件連接屬性中的第一貞導出取消,發布選項中選導出從第2貞,將組件放在第二貞(或有命名的貞)
并在第二貞加上stop();(注意 本文沒有特別說明是所有腳本都是寫在單獨的as層,即寫在貞上);

在第一貞加代碼,

this.onEnterFrame = function(){
var amount:Number = this.getBytesLoaded()/this.getBytesTotal()*100;
preloader._xscale = amount;
}
if(amount == 100){
this.gotoAndPlay(2);//如果是命名的貞,則改成此貞
delete this.onEnterFrame;
}

 

------分隔線----------------------------
標簽(Tag):FLASH FLASH實例教程 flash教程 flash實例
------分隔線----------------------------
推薦內容
猜你感興趣
湖南刘雪龙黑彩