MouseEventを無効にして再度有効にする方法。 buttonMode、mouseChildren、およびenableが機能しない

StackOverflow https://stackoverflow.com/questions/1431647

質問

基本的に質問はより正確に尋ねられる可能性がありますが、ボタンを無効にしてから再度有効にするにはどうすればよいですか? buttonModeをfalseに設定し、mouseChildrenをfalseに設定し、falseに設定してみました。何も動作しません。イベントリスナを削除するだけで できますが、よりエレガントで効率的な方法が確実にあります。イベントリスナーを削除すると、特定のボタンの状態に関係する機能を追跡し、それらを何度も何度も追加および削除しなければならなくなるため、不格好に思えます。

フラグを設定して、オブジェクトが持つ可能性のあるeventListenerを一時的に無効にしてから、再度有効にする方法はありますか? MovieOverにrollOverイベントなどを追加すると、理論上はボタンに変換されるという誤解がありましたが、ボタンはenabledプロパティで簡単にオフにできます。また、SimpleButtonを使用することはできません。提供するよりも柔軟性が必要です。

このすべての機能を処理し、生活をよりシンプルにするカスタムクラスを作成しましたが、すぐに使える公式な方法があるかどうか迷っています。

以下は孤立した例で、インスタンス名がiPooのステージでMovieClipを使用します。ボタンをクリックすると、設定内容に関係なくイベントが常に発生します。

iPoo.addEventListener(MouseEvent.ROLL_OVER、pooRollOver);
iPoo.addEventListener(MouseEvent.ROLL_OUT、pooRollOut);
iPoo.addEventListener(MouseEvent.CLICK、pooClick);

function pooRollOver(_event:MouseEvent):void
{

iPoo.alpha = 0.5;  

}

関数pooRollOut(_event:MouseEvent):void
{

iPoo.alpha = 1;  

}

function pooClick(_event:MouseEvent):void
{

trace("Poo");  

iPoo.enabled = false;  
iPoo.buttonMode = false;  
iPoo.mouseChildren = false;  

}

役に立ちましたか?

解決

mouseEnabled プロパティを使用します。

mc.mouseEnabled = false;

livedocsから:

  

有効な場合有効な場合falseに設定すると、ムービークリップのオーバー、ダウン、およびアップフレームが無効になります。ムービークリップは引き続きイベント(mouseDown、mouseUp、keyDown、keyUpなど)を受信します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top