這個做法是從大陸那邊看來的
自己有加上一些註解跟小修改了一下
個人認為算是不錯用的一個技術
因為之前找到的一些範例都是屬於要繪圖或者匯入圖片
對我來說有點麻煩
萬一圖不見了或者是臨時找不到圖不就挫賽?
更重要的是我很懶…我不想花時間畫圖@@
後來發現這個東西真的很方便
只要在第一格新增一個空白的關鍵影格
然後關鍵影格上編輯動作
新增以下內容
var myLoading:MovieClip; var loadInfo:MovieClip; var _lineColor = "0xDB0000"; //進度條外框顏色,預設值0x8EE0FF var _lineAlpha = 40; //進度條外框透明度,預設值20 var _lineBgcolor = "0xDB0000"; //進度條實心顏色,預設值0x666666 var _FontColor = "0x20177A"; //進度條讀取的數字顏色,預設值0xFFFFFF var _FontLocX = 0; //進度條讀取的位置X,預設值0 var _FontLocY = 20; //進度條讀取的位置Y,預設值0 var _lineLen:Number = 300; //進度條的寬度,預設值200 var _lineH:Number = 10; //進度條的高度,預設值3 var _txtColor; var _txtAlign:String = "center"; var _txtSize = 48; var tb:Number; var txtFormat:TextFormat = new TextFormat ("Arial", _txtSize, _FontColor, true); myLoading = _root.createEmptyMovieClip("myLoading",10); //進度條 loadInfo = myLoading.createEmptyMovieClip("line", 10); loadInfo.lineStyle(1, _lineColor, _lineAlpha); loadInfo.moveTo(0, 0); loadInfo.lineTo(_lineLen, 0); loadInfo.lineTo(_lineLen, _lineH); loadInfo.lineTo(0, _lineH); loadInfo.lineTo(0, 0); //進度顯示文本 loadInfo.createTextField("txt", 30, _FontLocX, _FontLocY, _lineLen, 22); loadInfo.txt.autoSize = _txtAlign; //設置進度條的位置(居中於主場景) loadInfo._x = (Stage.width - _lineLen)/2; loadInfo._y = Stage.height/2; //獲得影片大小並stop,再onEnterFrame tb = _root.getBytesTotal(); _root.stop(); myLoading.onEnterFrame = function(){ var lb:Number = _root.getBytesLoaded(); var percent:Number = Math.round(lb/tb*100); loadInfo.txt.text = percent+" %"; loadInfo.txt.setTextFormat(txtFormat); loadInfo.lineStyle(_lineH, _lineBgcolor, 10); loadInfo.moveTo(0, _lineH/2); loadInfo.lineTo(percent*_lineLen/100, _lineH/2); if (percent == 100) { _root.play(); delete this.onEnterFrame; loadInfo.clear(); loadInfo.txt.text = ""; } }
然後就擁有了進度讀取的效果
超簡單的吧?
不過有的Flash是循環動畫
請記得在最後一格加上語法強制跳到第二格
不然會重新跑一次Loading囉