0

ヘルプ、

mxml では、実行時に httpservice を使用して xmllistcollection に xmlfile をロードし、それをリスト オブジェクトに割り当てることができます。

コードで xml オブジェクト メニュー ツリー構造を定義し、それをツリーに割り当てることもできます。

私ができないことは、実行時にxmlファイルをロードしてツリーに割り当てることです。

だから私はファイルをロードしようとしています:

<root>
 <menuitem name="First Main Item">
   <menuitem name = "sub item 1"/>
   <menuitem name = "sub item 2"/>
 </menuitem>
 <menuitem name="First Main Item">
   <menuitem name = "sub item 3"/>
   <menuitem name = "sub item 4"/>
 </menuitem>
</root>

実行時にツリーに。

これを行う方法についての手がかりはありますか?

4

1 に答える 1

1

HTTPService を使用して、URL にリクエストを送信するだけです。Tree コンポーネントは List をデータ プロバイダーとして使用するため、次を使用する必要があります。

dataProvider="{myXml.menuitem}"

XML をリストに変換します。ツリーの labelField を定義することを忘れないでください

labelField="@name"

ツリーは次のとおりです。

ここに画像の説明を入力

<?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" 
           creationComplete="myService.send()">
<fx:Declarations>
    <s:HTTPService id="myService" url="com/xmltree/tree.xml" resultFormat="e4x" result="onServiceResult(event)"/>
</fx:Declarations>

<fx:Script>
    <![CDATA[
        import mx.rpc.events.ResultEvent;

        [Bindable]private var myXml:XML;

        private function onServiceResult(event:ResultEvent):void
        {
            myXml = event.result as XML;
        }
    ]]>
</fx:Script>

<s:HGroup x="20" y="20">
    <mx:Tree 
        dataProvider="{myXml.menuitem}" 
        labelField="@name"/>
</s:HGroup>

</s:Application>
于 2013-07-28T19:05:39.067 に答える