ActionScript3.0 ENTER_FRAMEイベントの削除もお忘れなく

ActionScript3.0 での

hoge_mc.addEventListener(Event.ENTER_FRAME,hogefunc);

などした場合のブラウザの負荷を無くす処理をいれる。

参考URL

http://hato-style.chu.jp/note/as3_rem_ef.html

AS3ではaddEventListenerでイベントを宣言。addEventListenerでENTER_FRAMEイベントを実行し、イベントを無効にしたい条件になったらremoveEventListenerでイベントを削除します。



hoge_mc.addEventListener(Event.ENTER_FRAME,hogefunc);
function hogefunc(e:Event){
  if( ENTER_FRAMEを止める条件 ){
    hoge_mc.removeEventListener(Event.ENTER_FRAME,hogefunc);
    trace('終了');
  }else{
    /*--何か連続する処理--*/
  }
}

無名関数の場合は、arguments.calleeで自分自身の関数を参照して削除。


hoge_mc.addEventListener(Event.ENTER_FRAME,function(){
  if( ENTER_FRAMEを止める条件 ){
    hoge_mc.removeEventListener(Event.ENTER_FRAME,arguments.callee);
    trace('終了');
  }else{
    /*--何か連続する処理--*/
  }
});