(section04-01 イベントとイベントリスナーから抜粋)
イベントターゲットに追加したイベントリスナーを取り除くにはremoveEventListener()を使います。イベントターゲットに対して取り除きたいイベントタイプとリスナー関数を引数で指定します。
書式:イベントリスナーを取り除く
たとえば、box_mcに追加してある「Event.ENTER_FRAMEイベントでstepRotation()を実行する」というイベントリスナーを取り除くスクリプトは次のようになります。これでbox_mcの回転が止まります。
[:script:]box_mcからイベントリスナーを取り除く
クリックで回転を止める
ぐるぐる回転しているbox_mcをクリックすると回転が止まるようにするにはどうすればよいでしょうか。box_mcを回転させる方法は先のサンプルで説明したようにEvent.ENTER_FRAMEのイベントリスナーにリスナー関数としてstepRotation()を追加し、stepRotation()でbox_mcを少しずつ回転させます。この回転をクリックで止めるには次のスクリプトの3行目のようにクリックのMouseEvent.CLICKイベントにstopRotation()をリスナー関数として追加し、stopRotation()の中でEvent.ENTER_FRAMEのイベントリスナーを取り除きます。
[:script:]回転しているbox_mcをクリックして止める
イベントターゲットに追加したイベントリスナーを取り除くにはremoveEventListener()を使います。イベントターゲットに対して取り除きたいイベントタイプとリスナー関数を引数で指定します。
書式:イベントリスナーを取り除く
イベントターゲット.removeEventListener(イベントタイプ, リスナー関数);
たとえば、box_mcに追加してある「Event.ENTER_FRAMEイベントでstepRotation()を実行する」というイベントリスナーを取り除くスクリプトは次のようになります。これでbox_mcの回転が止まります。
[:script:]box_mcからイベントリスナーを取り除く
box_mc.removeEventListener(Event.ENTER_FRAME, stepRotation);
クリックで回転を止める
ぐるぐる回転しているbox_mcをクリックすると回転が止まるようにするにはどうすればよいでしょうか。box_mcを回転させる方法は先のサンプルで説明したようにEvent.ENTER_FRAMEのイベントリスナーにリスナー関数としてstepRotation()を追加し、stepRotation()でbox_mcを少しずつ回転させます。この回転をクリックで止めるには次のスクリプトの3行目のようにクリックのMouseEvent.CLICKイベントにstopRotation()をリスナー関数として追加し、stopRotation()の中でEvent.ENTER_FRAMEのイベントリスナーを取り除きます。
[:script:]回転しているbox_mcをクリックして止める
//イベントリスナーを登録する box_mc.addEventListener(Event.ENTER_FRAME, stepRotation); box_mc.addEventListener(MouseEvent.CLICK, stopRotation); //フレーム再生で実行されるリスナー関数 function stepRotation(eventObj:Event):void { //box_mcを回転させる box_mc.rotation +=2; } //クリックで回転を止めるリスナー関数 function stopRotation(eventObj:MouseEvent):void { //イベントリスナーを取り除く box_mc.removeEventListener(Event.ENTER_FRAME, stepRotation); }→swfを試す