• 締切済み

ムービークリップのボタンの無効化について

お世話になっております。 actionscript3でFLASHサイトを製作しております。 マウスオーバー、マウスアウト、マウスクリックのイベント機能を付与したムービークリップ型のボタンがあり、ボタンモードを有効にしています。 button.buttonMode = true; マウスオーバーの際はムービークリップの指定のフレームからアニメーション処理を行っています。 button.addEventListener(MouseEvent.MOUSE_OVER, btnOver); function btnOver(event:MouseEvent):void { button.gotoAndPlay(2); } このボタンを、あるイベントが実行された時にボタンとしての機能をなくし、尚且つマウスオーバー、マウスアウトのアニメーション処理も無効化したいと思い、以下の処理を行いました。 ボタンモードは無効になりましたが、マウスオーバー、マウスアウト、クリック処理は無効にならず、動作してしまいます。 button.buttonMode = false; button.mouseEnabled = false; button.enabled = false; 上記の方法とは別にイベント処理を削除しようと思い、removeEventListener処理を行いましたが、「TypeError: Error #2007: パラメータ listener は null 以外でなければなりません。」というエラーが表示されてしまいました。 指定の仕方が間違っているのだと思いますが、何方かご教授いただけないでしょうか? また、上記の方法以外で無効化する手段があればご教授いただければと思います。 宜しくお願いいたします。

みんなの回答

  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.1

> removeEventListener処理を行いましたが、 > 「TypeError: Error #2007: パラメータ listener は > null 以外でなければなりません。」 > というエラーが表示 他のスクリプトは具体的であるのに, この removeEventListener に関してだけ具体的ではないので, どこがどう間違っているとは言えません。 例えば 「button」以外にボタンを作って そのボタンに「button2」というインスタンス名を付け, 次のコードを書かれていらっしゃる function btnOver の下に書くと エラーも出ませんしイベントリスナーも削除できますよ。 button2.addEventListener(MouseEvent.CLICK, removeButtonEvent); function removeButtonEvent(event:MouseEvent):void { button.buttonMode=false; button.removeEventListener(MouseEvent.MOUSE_OVER, btnOver); }

関連するQ&A