flash的进度条Loading 预载动画如何写代码?

2025-01-01 18:37:33
推荐回答(1个)
回答1:

AS2.0 方法一:

舞台有一个 动画 实例名 为 loading 在舞台的一二两帧。第三帧开始为你的动画内容。loading里面 有100帧的动画 和一个 实例名为 txt的动态文本。
然后舞台:第一帧
lod = _root.getBytesLoaded();
tal = _root.getBytesTotal();
bfb = int(lod/tal*100);
//loading 动画根据加载百分比播放1-100帧动画。
loading.gotoAndStop(bfb);
//文本显示 百分比
loading.txt.text = bfb+"%";

第二帧:

if (bfb == 100) {
_root.gotoAndPlay(3);
} else {

_root.gotoAndPlay(1);
}
//当 百分比等于100的时候 播放第三帧。 否则 播放第一帧。
AS2.0 方法二:
有loading 元件一个。
loading里面 有100帧的动画 和一个 实例名为 txt的动态文本。
然后舞台:第一帧
stop();
然后 在元件身上写代码:

onClipEvent (enterFrame) {
lod = _root.getBytesLoaded();
tal = _root.getBytesTotal();
bfb = int(lod/tal*100);
this.gotoAndStop(bfb);
this.txt.text = bfb+"%";
if (bfb == 100) {
_root.gotoAndPlay(2);
}
}
第二帧 为你的动画内容。

AS3.0 版本:
第一帧

stop();
import flash.display.LoaderInfo;
import flash.events.ProgressEvent;
import flash.text.TextField;
//声明文本 显示位置
var loadText:TextField=new TextField();
loadText.x = 220;
loadText.y = 200;
//在舞台加载文本
addChild(loadText);

//侦听Event 事件
myload.addEventListener(Event.ENTER_FRAME,onEnterFramee);
//声明事件函数
function onEnterFramee(event:Event) {
if (framesLoaded == totalFrames) {
//如果加载等于总量 移除侦听。
myload.removeEventListener(Event.ENTER_FRAME,onEnterFramee);
//播放下一帧也可以使用 gotoAndPlay(XX) XX 是你想播放的帧。
nextFrame();
} else {
//声明加载百分比
var percent:Number = root.loaderInfo.bytesLoaded / root.loaderInfo.bytesTotal;
var m:Number = Math.round(percent * 100);
//loading 动画根据加载百分比播放1-100帧。
myload.gotoAndStop(m);
//文本显示百分比
loadText.text = m + "%";
}
}//myload为场景中预设的loading动画的MC名字