【问题标题】:Flex ActionScript XMLList Menu Bar problemFlex ActionScript XMLList 菜单栏问题
【发布时间】:2011-08-12 19:01:46
【问题描述】:

我在 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 中轻松解决。

【问题讨论】:

    标签: apache-flex actionscript menubar xmllist


    【解决方案1】:

    在您的 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 时检查启用是真还是假,基于此您可以控制您的菜单及其子项。

    【讨论】:

    • 这一切都可以轻松完成,但问题是 IF 条件,每当我们应用任何 if else 条件时,xml 都会停止工作......
    • @Dilshad Anwer 你能举个例子吗,你是如何应用任何条件的?目前还不清楚……
    • menubarXML= if (Entry_Tag="Y") //如果需要 { } else { } >
    • @Dilshad,编辑您的原始答案!
    【解决方案2】:

    您还可以为您的菜单定义您自己的描述符,您可以在其中 覆盖 方法 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();
    

    希望有帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-18
      • 2016-04-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多