14
sty
08

Dynamiczny XML we Fleksie

Wiedziec a zrobic… To dwie rozne historie. Wydawalo mi sie ze wiem juz jak dynamicznie laczyc XML z Flex. Wczoraj wydawalo sie to proste, przed lunchem jeszcze prostrze, ale po lunchu juz nie. Choc dzieki pomocy pana Piotra deHaana z Adobe poszlo jak po masle.

W kodzie wszystko bylo OK, poza 3 literkami. Ich zmiana odblokowala mi caly projekt. Czyli projekt sie skompilowal i wyswietlil to co chcialem. Do rzeczy:

Mamy nastepujacy XML, gdzie kolejne wpisy <news> wygladaja nastepujaco:

<news>

 <date>18.12.2007 11:41</date>

 <title>Contact Centre Report</title>

 <lead>Week 45 - summary</lead>

 <content>http://127.0.0.1/site/home/news/view/item382669/</content>

</news>

Aby program czytal plik dynamicznie nalezy wykonac 2 zestawy polecen:

1. Czytanie i konwersja pliku do listy:

    <mx:HTTPService resultFormat=”e4x” url=”news.xml” id=”inputXML” result=”onResult(event)”/>

    <mx:XMLListCollection id=”newsXML” source=”{inputXML.lastResult.news}”/>

Te magiczne 3 literki to sposob odczytu pliku XML. Zamiast wartosci ‘xml’ nalezy uzyc ‘e4x’. I dalej wszystko staje sie proste.

2. W naglowku mx:Application trzeba wymusic odswiezenie serwisu HTTPService przy pomocy funkcji send(); Za kazdym razem przy odswiezeniu aplikacji, trafia do niej najnowsze dane z pliku XML.

creationComplete=”inputXML.send()”

W dalszym ciagu aplikacji odwoluje sie bezposrednio do listy newsXML, podobnie jak w poprzednich przykladach.

W czesci skryptowej nalezaloby zabezpieczyc sie przed bledem w czytaniu zewnetrzego pliku.
Wygladaloby to nastepujaco:

<mx:HTTPService resultFormat=”e4x” url=”news.xml” id=”inputXML” result=”onResult(event)” fault=”serv_fault(event);” />

oraz kod wywolujacy okienko Alert:

<mx:Script>

        <![CDATA[

            import mx.rpc.events.FaultEvent;

            import mx.rpc.events.ResultEvent;
            private function serv_fault(evt:FaultEvent):void 

	    {

            mx.controls.Alert.show("Unable to load XML:n", "ERROR");

            }

        ]]>

</mx:Script>

Koniec.

Zapraszam oczywiscie do mojego miasteczka!


0 Odpowiedzi do “Dynamiczny XML we Fleksie”


  1. Brak komentarzy

Napisz odpowiedź