电影剪辑加载事件

时间:2011-10-07 14:55:33

标签: flash actionscript-3

movieClip加载我可以让我的flash电影的其他方面做出反应时是否有事件?我想在movieClipOne加载时添加一个event listener,它可以在我的动作脚本中触发不同的功能(使舞台的其余部分变暗)。

movieClipOne.addEventListener(Event.NAME, dimFunction);

此外,如果有人可以告诉我应用程序最初加载时的Event.NAME,那也会有帮助。

3 个答案:

答案 0 :(得分:1)

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

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

的文档

答案 1 :(得分:1)

如果您使用Loader类加载MovieClip,则可以将事件侦听器添加到其contentLoaderInfo属性中:

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

你也可以添加一个INIT监听器:

loader.contentLoaderInfo.addEventListener(Event.INIT, handleInit);

每个函数都应将Event作为其唯一参数,例如:

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

编辑: 鉴于你发布的最终解决方案,我会说因为你在时间轴上使用代码,你可以将事件监听器添加到swfs loaderInfo对象,所以在第1帧:

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

我认为检查swf的某些其他元素是否存在是最好的做法,虽然它显然适用于您的情况,并且仔细选择/反复试验也适用于其他人。

答案 2 :(得分: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代码可访问。

感谢您提供其他答案 - 他们帮助我找到了解决方案。