关于loading的一些技巧
关于loading的一些技巧
发布时间:2016-12-28 来源:查字典编辑
摘要:近日在做一个flash的时候,发现了一个非常奇怪的问题,就是loading的进度条是从64%开始的,而且进度条出现之前,一片空白,但是上传到...

近日在做一个flash的时候,发现了一个非常奇怪的问题,就是loading的进度条是从64%开始的,而且进度条出现之前,一片空白,但是上传到空间之后,却发现loding完全失效,望各位help一下,我琢磨了2个多小时,头都快大了.以下是前两帧的代码

第一帧:

totalB=_root.getBytesTotal();

loaded=_root.getBytesLoaded();

trace(loaded);

per=Math.round(loaded/totalB*100);

trace(per);

_root.load_bar._xscale=per;

loadper=per+"%";

第二帧:

if(loaded>=totalB){

gotoAndPlay("场景1",1);

}

else{

gotoAndPlay(1);

}

先谢过了!

stop()

_root.createEmptyMovieClip("Loading_mc",_root.getNextHighestDepth())

Loading_mc.beginFill(0x5f6165)

Loading_mc.moveTo(0,10);

Loading_mc.lineTo(0,0);

Loading_mc.lineTo(350,0);

Loading_mc.lineTo(350,10);

Loading_mc.lineTo(0,10);

Loading_mc._x=200

Loading_mc._y=350

_root.createTextField("Loading_txt",_root.getNextHighestDepth(),200,370,30,20)

Loading_txt.border=false

Loading_txt.multiline=true;

Loading_txt.wordWrap=true;

Loading_mc.onEnterFrame=function(){

if(_root.getBytesLoaded()>=_root.getBytesTotal()){

_root.play()

_root.Loading_mc.removeMovieClip()

_root.Loading_txt.removeTextField()

}else{

_root.Loading_mc._xscale=(_root.getBytesLoaded()/_root.getBytesTotal())*100

_root.Loading_txt.text=int(Loading_mc._xscale).toString()+"%"

_root.Loading_txt._x=Loading_mc._width+200

}

}

放到第1帧就OK了.

代码解读:

1让影片在第1帧时停止播放;

2在根路径也就是_root的位置建立一个影片剪辑,它的名称为Loading_mc,它的层深为根路径中现在没有使用的的第一个层深。

3Loading_mc影片剪辑填充为0x5f6165色;

4~8将它移动到X:0,Y:10的位置开始绘制,坐标为0~350,高度为10;

9它的X坐标等于200;

10它的Y坐标等于300;

11在根路径建立一个文本字段,它的名称为Loading_txt,它的层深为根路径没有使用的最后一个层深,它的X坐标为200,Y坐标为370,宽度为30,高度为20;

12它的边框属性border为假,也就是它没有边框;

13它可以是多行文本;

14它可以自动换行;

15当Loading_mc影片剪辑开始播放时,每播放一帧,执行一次以下代码;

16当根路径已经加载的字节,超过或者等于它的总字节时;

17根路径开始播放;

18并且删去Loading_mc这个影片剪辑;

19删去Loading_txt这个字段;

20如果条件不成立的话;

21Loading_mc影片剪辑的宽度缩放比例,等于根路径的已下载字节除以根路径的总字节的值,乘以100;

22Loading_txt字段的文字内容,等于对宽度缩放比例的值,取整之后,再转换为字符类型,然后加上“%”百分号;

23而它的坐标等于Loading_mc影片剪辑的宽度加上200。

非常感谢爱老虎油的解答,但是我想我的问题可能有点不一样,因为,即使我在第一帧里加入如下两行

trace("loaded");

stop();

也是过一段满长的时间,才显示loaded,并且进度条停在了64%处,

我想是不是影片加载到64%的时候才开始执行我的代码,我把代码放在场景1,主影片放在场景2

也许我说的不对,仅供参考.

其一,我不知道你用什么版本,但是你的变量没有指定数据类型.

其二,第一帧里检查一下,有什么大东西没有.不要放在第1帧.

其三,_root.load_bar._xscale=per;这句说明per是数值型,但是.loadper=per+"%"未转换数据类型进行操作.

其四,_root.getBytesLoaded();表示什么?本场景的字节吗?如果想全局的话用_global好不.

其五,gotoAndPlay("场景1",1);使用汉字做场景名称的话,并不是程序推荐的作法.

其六,Math.round()是什么意思?四舍五入吗?不准确吧,换int吧.

总结:其它都是小问题,_root换成_global,可能是主要的问题所在,

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新Flash教程学习
热门Flash教程学习
网页设计子分类