2

私は Flex 4 で作業しており、MenuBar コントロールを使用する必要があります。項目を設定するには XMLList が必要ですが、問題は、メニューのサブ項目に if 条件を適用したいということです。例を使用して問題を説明します。

var menubarXML:XMLList;

menubarXML=
<>
   <menuitem label="File">
   <menuitem label="New Sheet" data="new_sheet"/>
   <menuitem label="Open Existing" data="open_sheet"/>
   <menuitem label="Print" data="print"/>
   //i want to apply condition here     
   <menuitem label="Save" data="save_pdf"/>
   <menuitem label="Exit" data="exit"/>
   </menuitem>
</>

たとえば、if (anyflag==true) のような条件を適用して、保存メニューのサブ項目を無効にするにはどうすればよいでしょうか。もちろん質問は簡単で、この問題は Java と PHP で簡単に解決できます。

4

2 に答える 2

0

enable = true または false を使用して XML に属性を設定します。

<menuitem label="File">
<menuitem label="New Sheet" data="new_sheet" enable = "true"/>
<menuitem label="Open Existing" data="open_sheet" enable = "true"/>
<menuitem label="Print" data="print" enable = "false"/>
</menuitem>

xml の解析中に、メニューとその子項目を制御できることに基づいて、enable が true か false かを確認します。

于 2011-04-26T06:05:55.923 に答える
0

また、メソッドisEnabledをオーバーライドして、レンダリング サンプルのタグを使用して項目を有効または無効にするメニュー用の独自のディスクリプタを定義することもできます。

public class MyDescriptor extends DefaultDataDescriptor
{

    public function MyDescriptor()
    {
        super();

    }

    override public function isEnabled(node:Object):Boolean
    {
                    return 'true'==node.anytag;
    }

}

メニューは次のように作成されます

menu = Menu.createMenu(this, dataprovider, false);
menu.dataDescriptor = new MyDescriptor();

役立つことを願っています

于 2011-04-26T09:30:03.393 に答える