0

AS2 には、ムービー クリップがステージ上で初期化されたときにトリガーされるイベント onclipevent(load) がありました。私はたくさん検索しましたが、AS3 で同じ機能を見つけることができる唯一の解決策は、ムービー クリップのカスタム クラスを作成することです。私の場合、実行するコードは 1 行しかなく、プロジェクトで余分な AS ファイルをたくさん回避しようとしているので、これは少しやり過ぎです。MovieClips は動的に追加されないため、Event.ADDED_TO_STAGE などのイベントは機能しないことに注意してください。

AS3 で onclipevent(load) を実行する方法は本当にありませんか?

4

1 に答える 1

0

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;
}
于 2012-04-10T13:44:54.163 に答える