Actionscript 3 当MovieClip初始化为AS2 onclipevent(加载)时查找AS3事件

Actionscript 3 当MovieClip初始化为AS2 onclipevent(加载)时查找AS3事件,actionscript-3,actionscript,Actionscript 3,Actionscript,在AS2中,有一个事件onclipevent(load),当电影剪辑在舞台上初始化时触发。我已经搜索了很多,但对于AS3中的相同功能,我能找到的唯一解决方案是为电影剪辑创建一个自定义类。在我的例子中,这有点过分了,因为我只有一行代码要运行,我正试图在我的项目中避免大量额外的as文件。我应该注意到我的MovieClips不是动态添加的,所以Event.added\u TO\u STAGE等事件将不起作用 在AS3中真的没有办法进行onclipevent(加载)吗?在AS3中没有AS2样式的剪辑事件

在AS2中,有一个事件onclipevent(load),当电影剪辑在舞台上初始化时触发。我已经搜索了很多,但对于AS3中的相同功能,我能找到的唯一解决方案是为电影剪辑创建一个自定义类。在我的例子中,这有点过分了,因为我只有一行代码要运行,我正试图在我的项目中避免大量额外的as文件。我应该注意到我的MovieClips不是动态添加的,所以Event.added\u TO\u STAGE等事件将不起作用


在AS3中真的没有办法进行onclipevent(加载)吗?

在AS3中没有AS2样式的剪辑事件。如果要避免为片段创建自定义类,可以将初始化代码放入函数中,并在创建片段时立即调用它,如下所示:

import flash.display.MovieClip;
function onClipLoad(clip : MovieClip) : void
{
    // do onLoadStuff here
    clip.x = 100;
    clip.y = 10;
}

// call onClipLoad when the clip is created, either in code or via timeline
var myClip : MovieClip = new MyClip();
onClipLoad(myClip);
更好的是,您可以将此代码放在MovieClip时间线的第1帧上,以自动初始化它的实例:

var initialized : Boolean;
if(!initialized) {
   initialized = true;
   // do init code here
   x = 100;
   y = 10;
}

哈哇,这太有道理了,我很惊讶我竟然一点都不明白!似乎我已经习惯了AS2的怪癖,我甚至没有想到去尝试显而易见的解决方案!谢谢你,迈克