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>

面白いことに、2 番目の親を追加すると、メニューが正しく表示されます。ここで何が起こっているのか、どうすればこれを解決できるのか、誰でも説明できますか?

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 に追加すると、すべて正常に動作します。親ノードが1つしかない場合は、それを表示する必要がないので、子にスキップすると推測しています。以下に 2 番目の親を追加しました。

<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 に答える