0

这是我的代码,预期的菜单将显示祖父母 > 父母 > 孩子。但是,没有显示“父”项,而是直接在“祖父”下方显示“子”。

<mx:Script>
    <![CDATA[
        // Import the Menu control.
        import mx.controls.Menu;

        // Create and display the Menu control.
        private function createAndShow():void {
            var myMenu:Menu = Menu.createMenu(null, myMenuData, false);
            myMenu.labelField="@label";
            myMenu.show(10, 10);
        }
    ]]>
</mx:Script>

<!-- Define the menu data. -->
<mx:XML format="e4x" id="myMenuData">
    <root>
        <menuitem label="grandparent">
            <menuitem label="parent">
                <menuitem label="child"/>
            </menuitem>
        </menuitem>
    </root>
</mx:XML>

<mx:VBox>
    <!-- Define a Button control to open the menu -->
    <mx:Button id="myButton" 
               label="Open Menu" 
               click="createAndShow();"/>
</mx:VBox>

有趣的是,当我添加第二个父母时,它确实正确显示了菜单。谁能解释这里发生了什么以及我该如何解决这个问题?

4

2 回答 2

0

试试下面的一些东西: -

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
               xmlns:s="library://ns.adobe.com/flex/spark" 
               xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
    <fx:Declarations>
        <!-- Place non-visual elements (e.g., services, value objects) here -->
        <fx:XML id="myMenuData" >
                <menuitem label="grandparent">
                    <menuitem label="Uparent">
                        <menuitem label="child"/>
                    </menuitem>
                </menuitem>
        </fx:XML>
    </fx:Declarations>
    <fx:Script>
        <![CDATA[
        // Import the Menu control.
            import mx.controls.Menu;

            // Create and display the Menu control.
            private function createAndShow():void {
                var myMenu:Menu = Menu.createMenu(null, myMenuData, true);
                myMenu.labelField="@label";
                myMenu.show(10, 10);
            }
        ]]>
    </fx:Script>

    <!-- Define the menu data. -->


    <mx:VBox>
        <!-- Define a Button control to open the menu -->
        <mx:Button id="myButton" 
                   label="Open Menu" 
                   click="createAndShow();"/>
    </mx:VBox>

</s:Application>
于 2012-06-08T06:23:13.570 回答
0

我拿了你的代码,把它扔到我自己的项目中,得到了和你一样的结果。然后我将另一个父级添加到您的 XML 中,一切正常。我猜如果你只有一个父节点,真的不需要显示它,所以它会跳到子节点。在下面添加了第二个父级:

<root>
    <menuitem label="grandparent">
        <menuitem label="parent1">
            <menuitem label="child"/>
        </menuitem>
        <menuitem label="parent2">
            <menuitem label="child"/>
        </menuitem>
    </menuitem>
</root>
于 2012-06-07T11:12:22.510 回答