AS3.0文档类加载自身loading进度时会出现直接显示100%的问题,用这个“双帧法”(制作loading最少要两帧,),只需要三个步骤可以解决这个问题:
1、第一帧放loading MC;
2、第二帧放文档类要用到MC元件;
3、最关键的一步:将所有链接到文档类的元件的链接属性中的“在第一帧导出”取消掉。
示例代码:
package
{
import flash.display.*;
import flash.events.*;
import flash.text.*;
public class loadinfoTest extends MovieClip
{
public var loadText:TextField;
public function loadinfoTest():void
{
stop();
loadText = new TextField();
loadText.text = "0%";
loadText.autoSize = "left";
addChild(loadText);
//注册首页自身加载进度事件
this.loaderInfo.addEventListener(ProgressEvent.PROGRESS, indexLoadingProgress);
//注册首页自身加载完成事件
this.loaderInfo.addEventListener(Event.COMPLETE, indexLoaded);
}
//首页Loading加载进度
public function indexLoadingProgress(event:ProgressEvent):void
{
var hl:Number = event.bytesLoaded / event.bytesTotal;
var n:Number = Math.round(hl * 100);
trace(event.bytesLoaded, n);
loadText.text = n + "%";
}
public function indexLoaded(event:Event):void
{
trace('Loaded!!');
gotoAndStop(2);
var a:appMC = new appMC(); //实例一个元件类,不在帧1中导出
addChild(a);
}
}
}