当前位置: 代码迷 >> Web前端 >> 利用装载字节数制造loading
  详细解决方案

利用装载字节数制造loading

热度:139   发布时间:2012-11-06 14:07:00.0
利用装载字节数制作loading

终于搞定。。呵呵。。。
????看看用getBytesLoaded()和getBytesTotal()来制作loading?。。。。
????这两个语句意思分别为:获取装载的字节数和动画总的字节数。说到这里,朋友们大概就明白了。我们利用装载的字节数与总的字节数的比值来判断动画是否装载完或者是否达到我们设定的装载位置。这两个语句的优点在于,他们能够精细的判断整个动画和下载的动画的字节数,让观众更能够清楚的知道动画的大小和下载速度。下面我们就利用这两个语句来作一个loading。?
1,??打开flash?mx,新建一个文件,文档属性默认。
2,新建一个影片剪辑mc,命名为myloading。
3,进入影片剪辑myloading编辑区,利用长方形工具画一个进度条。
4,??然后,在100帧处插入关键帧。
5,??返回到影片剪辑myloading的第1帧,利用变形工具,改变进度条的中心点。
6,??并使之变形。(在x轴上缩小至消失)。
7,??在第1帧和第100帧之间创建形状渐变。
8,??在影片剪辑myloading的编辑区里新建一层,来作进度条的外框。利用墨水瓶工具和复制。
9,??回到主场景,打开库面板,把影片剪辑myloading拖放到第1层的第1帧,并延长第2帧。
10,单击场景中的影片剪辑,在属性面板中填如其分身名myloading。
11,在主场景中新建图层,命名为as。在as层的第2帧插入空白关键帧。
12,分别在as层的第1帧和第2帧加入as语句如下:?????第1帧:?
a=getBytesLoaded();??
b=getBytesTotal();??
loaded=int(a/b*100);??
myloading?.?gotoAndPlay(?loaded?);??
第2帧:??
if?(a==b)?{??
??gotoAndPlay("场景?1",?1);??
}?else?{??
??gotoAndPlay(1);??
}?
13,打开场景面板,把当前场景一改名为:loading。
14,新建一个场景,并在新场景的第1帧加入一段音乐(为了增大文件体积。当然也可以是动画)。
15,测试完成。
动作脚本解释:?????第一帧:??
a=getBytesLoaded();???//设置变量a等于下载的字节数。??
b=getBytesTotal();?????//设置变量b等于动画全部字节数。??
loaded=int(a/b*100);???//int为取(a/b*100)的整数(近似值)??
myloading?.?gotoAndPlay(?loaded?);??//播放影片剪辑,并以loaded的进度限制。?
?????第二帧:?
if(a==b){???????//如果下载的字节数等于全部字节数,则执行下面的语句。??
gotoAndPlay(“场景1”,1);????????//播放场景1的第1帧。??
}else{?????????????//否则,(条件不满足时)??
gotoAndPlay(1);?????//播放loading场景的第1帧??
我刚刚测试过。。。成功。。。呵呵。。。
供flasher参考哦。。呵呵~
PS:我的一个小loading?的记录。。。
??首先?????做一MC命名为loader?拉如SCENE。。。
??然后?????在MC下插入一个动态文本框。用于显示进度。。实名化kb。。。
??最后?????插一层。。。为AS。。。。在AS的第一帧写入:
a=getBytesLoaded();??
//得到下载的字节数?
b=getBytesTotal();??
//得到SCENE总的字节数?
loaded=int(a/b*100);??
//得到下载的比率。。注意*100是为了对应到MC的帧数?
loader.gotoAndPlay(loaded);??
//控制MC播放对应下载进度的帧?
在AS的第二帧写入:
if?(a==b)?
?//如果载入字节数等于SCENE总字节数的话?
{??
?gotoAndPlay(12);??
//跳转到12帧播放。第12帧为SCENE正式播放的起始帧?
}??
else?
//否则?
?{??
?kb=loaded+"%";??
//把下载比率值赋予动态文本框kb并显示?
本文转自:http://www.5uflash.com/flashjiaocheng/Flash-loadingjiaocheng/2051.html
  相关解决方案