国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 辦公 > Flash > 正文

制作Flash Loading 加載進度條

2024-09-12 17:50:33
字體:
來源:轉載
供稿:網友
復制代碼 代碼如下:

前言:網絡中的swf影片是可以實現邊下載邊播放的,由于受到當前網絡傳輸的制約,對于大容量的影片,這種實時播放并不理想。為避免受眾尷尬的等待,flash制作人員往往設計一個加載(loading)的畫面,等影片的全部字節下載到本地后再播放,從而保證影片的播放質量.本文將介紹一種較為標準的loading制作方法。


步驟:
1.打開Flash MX 2004,選擇矩形工具,在主場景中畫出下一個只有邊框有矩形,本例該矩形大小為350*16像素。
2.再在主場景中仍用矩形工具畫出一個只有填充而無邊框的矩形,并按F8鍵將其轉換為影片剪輯(注:其注冊點一定要選在該矩形的最左側),其實例名為bar 。本例該矩形大小為345*11像素。
3.將上述兩矩形在主場景中排列好,使邊框矩形嵌套填充矩形。
4.在上述兩矩形旁邊用文字工具拖出一動態文本框,其變量名為bar_per。

至此,準備工作就緒,即建立了兩矩形框和一動態文本框,下面準備編寫代碼。

5.在主場景中,新建一層,選中該層第1幀,按F9鍵打開動作腳本編輯窗口,輸入以下代碼:

this.onLoad=function(){ 
myBytesTotal=_root.getBytesTotal(); 

this.onLoad(); 
this.onEnterFrame=function(){ 
myBytesLoaded=_root.getBytesLoaded(); 
bar_xscale=myBytesLoaded/myBytesTotal*100; 
percent=Math.round(bar_xscale); 
this.bar._xscale=bar_xscale; 
this.bar_per=percent+"%"; 

if(myBytesLoaded==myBytesTotal){ 
delete this.onEnterFrame; 
_root.nextFrame(); 
}else{ 
this.stop(); 

}
6.從主場景時間軸第2幀起制作你的flash影片。

注解:


this.onLoad=function(){ 
myBytesTotal=_root.getBytesTotal(); 
}
此段代碼是指,當影片剪輯(本例指兩矩形和一動態文本框所存在的主場景)加載時,讀取主時間軸存在的所有元素的總字節數并賦值給變量myBytesTotal。



this.onLoad(); 
flash事件處理函數MovieClip.onLoad=function(){…}有些奇怪,其中設置的代碼,若不在后面加上this.onLoad();,這些代碼并不能執行,因此加上這一句以便這些代碼得以執行。

myBytesLoaded=_root.getBytesLoaded();//讀取主時間軸存在的所有元素已加載的字節數,并將其賦值給變量myBytesLoaded。


bar_xscale=myBytesLoaded/myBytesTotal*100;//將myBytesTotal折算成100時,myBytesLoaded所得到的折算值賦給變量bar_xscale,以便給主場景中bar的_xscale賦值(_xscale的最大值只能為100),這里用到了初等數學的比例計算。


percent=Math.round(bar_xscale);//將變量bar_xscale的值取整后賦給變量percent,以便顯示的百分比不帶小數。

拓展:
1.“下載速度”的代碼設計
①在主場景中用文字工具拖出有適當寬度的動態文本框,并設其變量名為rate 。
②在主場景代碼層第1幀this.onEnterFrame=function(){}代碼體if語句前追加如下代碼:
t=getTimer();
rate= "下載速度:" + Math.round(myBytesLoaded/t * 100)/100 + " K/s";

2.“已用時間和剩余時間”的代碼設計
①在主場景中用文字工具拖出有適當寬度的動態文本框,并設其變量名為mytimes 。
②在主場景代碼層第1幀this.onEnterFrame=function(){}代碼體if語句前追加如下代碼:

timeLoaded=Math.round(t/1000); 
timeRemain=Math.round(timeLoaded*(myBytesTotal-myBytesLoaded)/myBytesLoaded); 
timeRemain=Math.round(timeRemain/60)+":"+Math.round(timeRemain%60); 
timeLoaded=Math.round(timeLoaded/60)+":"+Math.round(timeLoaded%60); 
mytimes="已用時間"+timeLoaded+" "+"剩余時間"+timeRemain; 
注:若“下載速度”的代碼沒有設計,則上述代碼前應追加代碼 t=getTimer();
拓展后主場景代碼層第1幀的全部代碼如下:


this.onLoad=function(){ 
myBytesTotal=_root.getBytesTotal(); 

this.onLoad(); 
this.onEnterFrame=function(){ 
myBytesLoaded=_root.getBytesLoaded(); 
bar_xscale=myBytesLoaded/myBytesTotal*100; 
percent=Math.round(bar_xscale); 
this.bar._xscale=bar_xscale; 
this.bar_per=percent+"%"; 

t=getTimer(); 
rate= "下載速度:" + Math.round(myBytesLoaded/t * 100)/100 + " K/s"; 

timeLoaded=Math.round(t/1000); 
timeRemain=Math.round(timeLoaded*(myBytesTotal-myBytesLoaded)/myBytesLoaded); 
timeRemain=Math.round(timeRemain/60)+":"+Math.round(timeRemain%60); 
timeLoaded=Math.round(timeLoaded/60)+":"+Math.round(timeLoaded%60); 
mytimes="已用時間"+timeLoaded+" "+"剩余時間"+timeRemain; 

if(myBytesLoaded==myBytesTotal){ 
delete this.onEnterFrame; 
_root.nextFrame(); 
}else{ 
this.stop(); 

}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 岫岩| 蒙阴县| 百色市| 监利县| 石柱| 东安县| 连云港市| 逊克县| 城固县| 衡水市| 仙桃市| 江门市| 垦利县| 武隆县| 五原县| 柯坪县| 祁门县| 鱼台县| 常宁市| 湖南省| 政和县| 大同县| 江都市| 沾益县| 靖宇县| 扶绥县| 通海县| 哈密市| 历史| 黔西县| 昌图县| 开封县| 如皋市| 永年县| 阜平县| 桐梓县| 甘谷县| 临桂县| 清河县| 闸北区| 连州市|