我只是因为好奇而问这个问题。 在as3中,在使用Event.ADDED_TO_STAGE侦听器时,它会自动调用2次。 我已用痕迹对此进行了测试。我已经检查过我是否添加了2次动画片,但没有这样的事情。我只添加了一次movieclip。
如果我在听众的功能开始时删除了这个监听器,那么这个问题就不会发生了。举一个只跟踪一次的例子:
addEventListener(Event.ADDED_TO_STAGE,added);
public function added(e:Event){
removeEventListener(Event.ADDED_TO_STAGE,added);
trace("MovieClip is added");
}
这是两次追踪的例子: 的addEventListener(Event.ADDED_TO_STAGE,添加);
public function added(e:Event){
trace("MovieClip is added");
}
如果有人说出原因,我们会非常感激。
谢谢
-Ozan
答案 0 :(得分:0)
我遇到了同样的问题。
我是如何解决的:
我将我的加载命令放在ADDED_TO_STAGE事件中。
像这样:
var mcLoader:MovieClipSWFLoader = new MovieClipSWFLoader();
public function init():void
{
this.addEventListener(Event.ADDED_TO_STAGE, selfLoad);
mcLoader.x = 10;
mcLoader.y = 10;
//THIS is important, because when you load, it is automatically added
mcLoader.autoLoad = false;
mcLoader.source = "mySwf.swf";
}
private function selfLoad(e:Event = null):void
{
this.addEventListener(Event.COMPLETE, setLoaded);
this.addEventListener(IOErrorEvent.IO_ERROR, loadingErrorHandler);
mcLoader.load();
}
它对我有用。