我在Flex 4中工作,并且wana使用MenuBar控件,它需要XMLList来填充其项目,但问题是,我想在我的菜单的子项目条件下应用,让我用例子解释我的问题:
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中轻松解决。
答案 0 :(得分: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,基于此可以控制菜单及其子项。
答案 1 :(得分:0)
您还可以为菜单定义自己的discriptor,其中覆盖方法 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();
希望有所帮助