Toon posts:

[FLEX] XML inlezen

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoi allemaal,

Ik ben aan het experimenteren geslagen met FLEX. Ik loop hierbij tegen een probleem aan:

Ik wil gegevens uit een XML bestand uitlezen. Dit kan heen eenvoudig dmv.

XML:
1
<mx:HTTPService id="myXML" url="file.xml" useProxy="false" />


Maar omdat de gegevens in het XML bestand niet in het juiste formaat voor en DataGrid aangeleverd worden wil ik ze met Actionscript inlezen en daarna omvormen naar een formaat wat geschikt is voor het datagrid.

ik heb op de adobe site het volgende voorbeeld gevonden:
http://livedocs.macromedi...tm?href=Part5_ProgAS.html

Aan de hand hiervan hem ik de volgende mxml pagina gemaakt:
XML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" >
<mx:Script>
    <![CDATA[
    var myXML:XML = new XML();
    var XML_URL:String = "http://www.example.com/Sample3.xml";
    var myXMLURL:URLRequest = new URLRequest(XML_URL);
    var myLoader:URLLoader = new URLLoader(myXMLURL);
    myLoader.addEventListener("complete", xmlLoaded);
    
    function xmlLoaded(evtObj:Event) { 
       myXML = XML(myLoader.data);
       trace("Data loaded.");
    }
    ]]>
</mx:Script>
</mx:Application>


Deze code levert een tweetal errors op:
- 1120: Access of undefined property myLoader
- 1120: Access of undefined property xmlLoaded

Kan iemand me vertellen wat er niet goed is aan deze code / waarom het niet werkt?

Alvast erg bedankt!

Verwijderd

Probeer onderstaande eens.

XML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" initialize="startApp();" >
<mx:Script>
    <![CDATA[
    private var myXML:XML = new XML();
    private var XML_URL:String = "http://www.example.com/Sample3.xml";
    private var myXMLURL:URLRequest;
    private var myLoader:URLLoader;    
    
    private function startApp():void {
        myXMLURL = new URLRequest(XML_URL);
        myLoader = new URLLoader(myXMLURL);
        myLoader.addEventListener("complete", xmlLoaded);
    } 
    
    private function xmlLoaded(evtObj:Event):void { 
       myXML = XML(myLoader.data);
       trace("Data loaded.");
    }
    
    ]]>
</mx:Script>
</mx:Application>