アプローチで考慮すべきことがいくつかあります。
関心のあるフレームにENTER_FRAMEリスナーを追加すると、そのフレームに入った後に発生するため、ムービークリップが再生されている場合は、次のフレーム(その時点でそのフレームから移動した可能性があります)までENTER_FRAMEイベントを取得しません。
フレーム上のコードは、再生ヘッドがそのフレームに入るたびに実行されることに注意してください。メモリリークの目的で適切な場合は、リスナーを削除するように注意する必要があります。
したがって、1つのアプローチは、このコードを問題のフレームに配置することです。リスナーも適切に削除されることに注意してください。
var thisFrame:int = currentFrame;
function handleUpdate(e:Event) {
if (currentFrame==thisFrame) {
// your code here...
} else {
// remove listener if we moved off the frame
removeEventListener(Event.ENTER_FRAME, handleUpdate);
}
}
// call it now because the listener won't fire until next frame
handleUpdate(null);
// add listener in prep for next ENTER_FRAME, though note that
// if we move off this frame, then the listener is removed above
addEventListener(Event.ENTER_FRAME, handleUpdate);
別のアプローチは、フレーム1に次のコードを追加することです。これにより、リスナーは常に実行され、クリーンアップされることはなく、フレーム12にある場合にのみコードが実行されます。
addEventListener(Event.ENTER_FRAME, handleUpdate);
function handleUpdate(e:Event):void
{
if (currentFrame==12) {
// your code here...
}
}