Canvasコンテナで囲まれたボタンのパネルを作成しています。この目的のためにMyButton
、UIComponentのサブクラスであるクラスを作成しました。MyButtonクラスには他に2つのサブクラスがあります:MyRadioButton
とMyMenuButton
、は、に対して別の動作をしMouseEvent.MOUSE_DOWN
ます。MyMenuButton
XMLから構築したメニューを作成して表示し、正常に構築します。
次のようにスーパークラスにリスナーを追加します。
this.addEventListener(MouseEvent.CLICK, handleClick);
this.addEventListener(MouseEvent.MOUSE_DOWN, handleMouse);
this.addEventListener(MouseEvent.MOUSE_UP, handleMouse);
それは作成段階で行われます。
私のサブクラスでは、handleMouse
ハンドラーをオーバーライドします。
override protected handleMouse(event:MouseEvent) : void
{
// subclass specific handling
}
これらのボタンオブジェクトは、次のようにキャンバスコンテナに追加されます。
クラスでMyButtonsContainer.as
:
this.rowChildren.addChild(button);
これらのボタンは完全に所定の位置に描画されます。問題は動作です。イベントはスーパークラスのhandleClickハンドラーに到達しません。そしてそれが実際の問題です-なぜそうなるのでしょうか?前もって感謝します
編集:MOUSE_DOWNとMOUSE_UPがCLICKイベントに干渉しているようです。リスナーを削除すると、ハンドラーをクリックするようになります。リスナーを一緒に住まわせるにはどうすればよいですか?