我有一个SWF主时间轴上的一个Flash动画,有几个图层,一些函数和一些关键帧标签。例如,我有一个碰到屏幕的明星的动画片段,然后触发主时间线的dispatchEvent去帧标签“下一个”。AS3加载程序不断重新加载相同的SWF
这里是主时间轴使用的ActionScript的示例:
Stars.addEventListener("fadeInTitle",_fadeInTitle);
function _fadeInTitle(e:Event):void {
Title.gotoAndPlay("fadeIn");
Stars.removeEventListener("fadeInTitle",_fadeInTitle);
}
stop();
也就是说SWF单独的作品完美。当我尝试将此SWF加载到另一个时,问题就出现了。 加载程序会一直重复加载SWF,并重叠它们,忽略加载的SWF的主时间轴上的动作,时间轴连续播放。这里是我用来加载SWF的代码:
import flash.net.URLRequest;
import flash.display.Loader;
import flash.events.Event;
import flash.events.ProgressEvent;
function startLoad(){
var mLoader:Loader = new Loader();
var mRequest:URLRequest = new URLRequest("Fly.swf");
mLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onCompleteHandler);
mLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, onProgressHandler);
mLoader.load(mRequest);
}
function onCompleteHandler(loadEvent:Event){
addChild(loadEvent.target.content);
}
function onProgressHandler(mProgress:ProgressEvent){
var percent:Number = mProgress.bytesLoaded/mProgress.bytesTotal;
}
startLoad();
这里没有什么特别的。只是一个简单的装载机
我发现了一种解决方法,将整个动画放在一个主动画片段内,并将该动画片段放在主时间轴上(一个关键帧,一个图层,没有动作),然后加载它。这样它的工作正常,但它感觉更像是一个补丁而不是解决方案。我真的很想知道为什么当您尝试加载使用主时间轴的外部SWF以及多个图层,关键帧和动作时会出现问题。
任何帮助/提示将不胜感激。
非常感谢您的阅读。
m
您是否尝试在startLoad()中放置断点以确保它只被调用一次? – Kai 2011-02-18 19:26:00