0

スプライトのメニューがあり、メニューを最小化できるようにボタンを追加しています。私はを使用していてSimpleButton()、メニューの子としてボタンを追加したので、menu.addChild(button)私が抱えている問題は、マウスオーバーしてボタンをクリックしたときに、どのイベントも発生しないことです。メニュースプライトには独自のマウスオーバーイベントがあり、メニューの子であることが理にかなっているように、ボタンはメニューに対して相対的に配置する必要があります。ボタンを引き続き機能させるにはどうすればよいですか?

前もって感謝します!

編集
ここに私のコードがあります:

protected const rectangle:Sprite = new Sprite(); 
private const minimizeBtn:SimpleButton = new SimpleButton(new ButtonDisplayState(MINIMIZE_BTN_BG_COLOR, 15, 15), new ButtonDisplayState(0xFF0000, 15, 15), new ButtonDisplayState(0x00FF00, 15, 15), new ButtonDisplayState(0x0FF000, 15, 15)); 
rectangle.addEventListener(MouseEvent.MOUSE_OVER, rectMouseOver);
addChild(rectangle);
rectangle.addChild(minimizeBtn);
4

2 に答える 2

1

親スプライト (メニュー) がマウス イベントを食べている可能性があります。そのオブジェクトで mouseChildren = true を設定してみてください。

于 2012-02-17T23:56:27.523 に答える
0

まず第一に、なぜボタンを const として定義しているのですか? 本当に正当な理由がない限り、ばかげている非 const 変数として定義してください。次に、イベント リスナーを、長方形のコンテナー (親オブジェクト) ではなく、minimizeBtn に直接追加します。

また、ドキュメンテーションでは、ボタンの 4 つの状態はコンストラクターではオプションであると記載されていますが、実際にはオプションではないことに注意してください。クラスは、実行時にクラスが壊れて正しく機能しない原因となるコンストラクターパラメーターについて非常に具体的です(もちろん、コンパイルエラーや実行時エラーはありません。フラッシュがそのチャンピオンであるためです)。

したがって、ここでは 4 つのコンストラクター引数すべてを提供していますが、以前の提案が失敗した場合は、いじる必要があるかもしれません。コンストラクターに関する NFO の詳細については、次のリンクを参照してください。

http://selfdocumentingcode.blogspot.com/2009/04/flash-simplebutton-and-mouseover-and.html

于 2012-03-11T07:21:29.283 に答える