みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

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

お世話になっております。

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 以外でなければなりません。」というエラーが表示されてしまいました。

指定の仕方が間違っているのだと思いますが、何方かご教授いただけないでしょうか?
また、上記の方法以外で無効化する手段があればご教授いただければと思います。

宜しくお願いいたします。

投稿日時 - 2009-10-26 23:53:13

QNo.5399544

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.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);
}

投稿日時 - 2009-10-28 19:28:52

あなたにオススメの質問