0

XML から Flash Builder に変数をロードする方法を教えてください。出来ますか?変数をロードすると思いますが、AS3 は完了しています。スクリプトを実行した後に XML の変数が読み込まれるということです。それを行う方法はありますか?アドバイスありがとう

4

2 に答える 2

0

このxmlがあると仮定します(このコードは完全に機能します):

<root>
<child id="1">
    <detail>
        <detailchild description="detail 1 child"/>
        <detailchild description="detail 2 child"/>
    </detail>
</child>

OpenXml.mxml

<?xml version="1.0" encoding="utf-8"?>
<s:ViewNavigatorApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 
                            xmlns:s="library://ns.adobe.com

/flex/spark" firstView="views.OpenXmlHomeView" applicationDPI="160"> 
    </s:ViewNavigatorApplication>

OpenXmlHomeView

    <?xml version="1.0" encoding="utf-8"?>
<s:View xmlns:fx="http://ns.adobe.com/mxml/2009" 
        xmlns:s="library://ns.adobe.com/flex/spark" title="HomeView" viewActivate="view_activateHandler()">

    <fx:Script>
        <![CDATA[
            import mx.collections.XMLListCollection;
            public function view_activateHandler():void{
                //Open a XML file
                var ldr:URLLoader = new URLLoader();
                var request:URLRequest = new URLRequest("../source.xml");
                ldr.addEventListener(Event.COMPLETE, onLoad);
                ldr.load(request);              
            }

            private function onLoad(e:Event):void
            {
                var arr:Array = new Array();
                var ldr:URLLoader = URLLoader(e.target);
                //XML was loaded then read 
                var myxml:XML = new XML(ldr.data);
                var xmlList:XMLListCollection = new XMLListCollection(myxml.children());
                //Loop over XML childs to load a Question Array
                for each(var obj:Object in  xmlList){
                    arr.push(obj.@id);
                    var xmlChildren:XMLList = obj.detail;
                    for each (var qt:Object in new XMLListCollection(xmlChildren.children())){
                        arr.push(qt.@description);
                    }
                }
                lbl.text = arr.toString();

            }
        ]]>
    </fx:Script>

    <s:Label id="lbl" />
</s:View>

このコードは次を示します。

1, detail 1 child, detail 2 child

このプロジェクトはここからダウンロードできます。

注: これは Flex Mobile プロジェクトです。

于 2013-07-20T19:27:31.660 に答える