2011-10-07 59 views
1

当我加载一个movieClip时,是否有一个事件可以让我的Flash动画的其他方面做出反应?我想为movieClipOne加载时添加一个event listener,这会在我的动作脚本中触发不同的功能(调暗舞台的其余部分)。影片剪辑加载的事件

movieClipOne.addEventListener(Event.NAME, dimFunction); 

而且,如果有人能告诉我Event.NAME为当应用程序最初加载,这将是有帮助了。

回答

0
this.addEventListener(Event.ENTER_FRAME,checkLoaded) 
function checkLoaded(e:Event){ 
if(mtERGOlink){ 
      // code reacting to mtERGOlink 
    this.removeEventListener(Event.ENTER_FRAME,checkLoaded) 
} 
} 

这让我编译并运行项目,如我所愿。我相信它不会使mtERGOlink代码可访问,直到mtERGOlink对象在舞台上可用。

谢谢你的其他答案 - 他们帮助我找到了这个解决方案。

1

不确定您的意思是“加载”。如果您使用的是Loader object,则需要将事件附加到contentLoaderInfo这是一个LoaderInfo对象。

如果您只是在将事件添加到舞台时将其附加到影片剪辑,则可以使用从DisplayObject继承的addedToStage事件。有关支持的事件的完整列表,只是检查出约MovieClip

1

的文档如果使用Loader类来加载影片剪辑,那么你可以将事件侦听器添加到它的contentLoaderInfo属性:

loader.contentLoaderInfo.addEventListener(Event.COMPLETE, handleComplete); 

和你也可以添加一个INIT听众太多:

loader.contentLoaderInfo.addEventListener(Event.INIT, handleInit); 
每这些功能

应采取的事件作为其唯一的参数,例如:

function handleComplete(e:Event):void 
{ 
//do something 
} 

编辑: 鉴于你已经张贴作为你的最终解决方案,我会说,因为你是在时间轴上使用的代码,你可以事件监听器第1帧添加到主权财富基金loaderInfo对象,所以:

this.loaderInfo.addEventListener(Event.COMPLETE, handleComplete); 
{ 
// do something here 
} 

我不认为检查swf的其他元素的存在是最好的做法,虽然它显然适用于你的情况,并且经过慎重选择/试验和错误它也适用于其他人。