0

AS3 コードのブロックを古い Flash ムービーで動作させようとしています。約 4000 のキーフレームで構成され、静的なムービー クリップがメイン タイムラインに定期的に追加されるムービー。

フレーム番号 120 で、インスタンス名が のムービークリップがplayButtonMCステージに追加されます。playButtonMCその中に名前のbuttonインスタンスがありますplayButton。メイン タイムラインからこのムービー クリップ内のボタンにクリック イベント ハンドラーを割り当てたいのですが、メイン タイムラインのキーフレーム # 121 のアクションからムービー クリップへの参照を取得できません。

私は無駄に次のことを試みました:

var myMc:MovieClip = stage.getChildByName("playButtonMC") as MovieClip;
trace(myMc);
trace(playButtonMC);
trace(root.playButtonMC);
trace(stage.playButtonMC);

// If I get a reference, I plan to do following to attach event listener.
// Please advise if its incorrect as well
myMc.playButton.addEventListener(MouseEvent.CLICK, doStuff);

function doStuff():void{
    trace('called');
}

すべての呼び出しのtrace結果はnull.

私は決して Flash 開発者ではありませんが、この小さな仕事を任せられました。ムービー クリップを動的に生成し、変数に参照を格納することによって、正しい AS3 の方法が必要であることはわかっていますが、現時点では、何らかの方法で機能させることだけを試みています。

編集

trace(stage.playButtonMC);実際にエラーを作成しますReferenceError: Error #1069: Property playButtonMC not found on flash.display.Stage and there is no default value.

4

2 に答える 2

1

インスタンスがまだ存在することを確認しますか?

ステージ != ルート

使用するrootthis、MainTimeline インスタンスにコードがある場合に使用します。舞台ではないことは確かです。

于 2013-11-08T00:28:00.060 に答える