1

type=" check "の子を持つオブジェクトを持つMenuBarあります。例えば:

メニュー

  • メニューアイテムA

    / リスト項目チェック 1A

    / リスト項目チェック 2A

    / リスト項目チェック 3A

  • メニュー項目 B

    / リスト項目チェック 1B

    / リスト項目チェック 2B

私の質問は次のとおりです: ユーザーがアイテムをクリックしたときに MenuBar が非表示になるのを回避するにはどうすればよいですか (itemClick イベント)? メニューを隠したり閉じたりせずに、ユーザーが一度に複数の項目を「チェック」できるようにしたい。

おまけの質問: チェックした項目をすべてリセットする最も簡単な方法は何ですか? :-)

よろしくお願いします、

セバスチャン

4

1 に答える 1

1

私がアドバイスできる唯一の方法は、クラス メニューのモンキー パッチを適用することです。私は自分でやろうとしましたが、あなたのタスクで説明したように機能します。

これを行う主な理由は、再定義する必要がある関数がこのクラスのプライベート メンバーを使用するためです。したがって、それらをオーバーライドすることはできません。

私たちの使命の目的は、機能にパッチを当てることです

function mouseUpHandler(event:MouseEvent):void{...}

その最後に、あなたは呼び出しを見ることができます

hideAllMenus();

アイテムのタイプが「チェック」かどうかを制御する新しい変数を追加する必要があります。したがって、最初にこの行を追加する必要があります

var isCheck:Boolean = _dataDescriptor.getType(item) == "check";

そして最後にこの状態

if (!isCheck) hideAllMenus();

パッチを適用したクラスを SDK のクラスの前にロードできるようにすることを忘れないでください。ここでそれについて読むことができます。

これが私の作業です。Menu1はチェック項目のみ、Menu2は通常項目のみです。

プロジェクト全体はここで見つけることができます

于 2013-02-14T23:09:30.790 に答える