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

在您的 XML 中具有 enable = true 或 false 的属性;

<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 回答