对flash actionscript来说俺是个新手。
最近接到一个flash项目,只能边做边学。对预载loading动态文字不能更新的问题研究了好久。最终解决方案如下:
loading条的编程如下:
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
}
}
====================
以上编程可以直接应用,直接插入到主场景的第一帧即可。可根据需要进行大小和颜色的调整。
对于动态百分比步骤如下:
step1:建立一个影片剪辑,分两层,第一层插入两帧,建立动态文字,变量为loadtxt
step2:在第二层中写程序。也是两帧。
step3:在程序帧的第一帧上插入如下程序:
total = _root.getBytesTotal();
loaded = _root.getBytesLoaded();
load = int(loaded/total*100);
loadtxt = load+"%";
updateAfterEvent ();
step4:在程序帧的第二帧上插入如下程序(这一帧是解决动态文字不能更新问题的关键):
updateAfterEvent ();
step5:把以上的做好的影片剪辑也放在主场景的第一帧上面。 大功告成。
============
问题解决。 综合起来,其实解决的关键点就是让这个动态文字周期性更新一下而已。
你可以使用这个链接引用该篇文章 http://publishblog.blogchina.com/blog/tb.b?diaryID=6337497