Ho la seguente funzione (che ho messo in un package Document Class) che legge un file XML e fa una serie di operazioni tra cui restituirmi il valore arrivo che io chiamerò destinazione. La funzione mi intercetta soltanto 3 destinazioni e le altre successive non le considera!! e se nel file xml ne metto meno di tre mi da addirittura errore!!
come devo fare? Come mai?
Codice PHP:
package lib {
import flash.display.*;
import flash.events.Event;
import flash.net.URLRequest;
import lib.utility.*;
import flash.events.MouseEvent; //per gestire eventi mouse
public class Game extends MovieClip {
private var parser:XMLLoader;
public var dati:Array = new Array();
public function Game ():void {
parser = new XMLLoader("data/percorsi.xml");
parser.addEventListener(Event.COMPLETE, complete);
}
private function complete (evt:Event = null):void {
evt.target.data as Array;
evt.target.data.forEach(callback);
}
private function callback (e:*, i:uint, a:Array):void {
trace("destinazione:"+e.arrivi);
}
}
}
Questo è il file XML che legge:
Codice PHP:
<?xml version="1.0" encoding="UTF-8"?>
<porti>
<percorso id="1">
<partenza coords="547.5,271.4">Cagliari</partenza>
<arrivo h="06:44" h_m="17:08" h_t="12:41" coords="233,234">Roma</arrivo>
<arrivo h="06:45" h_m="21:00" h_t="12:42" coords="253,244">Genova</arrivo>
<arrivo h="06:46" h_m="18:15" h_t="12:43" coords="243,114">Napoli</arrivo>
</percorso>
<percorso id="2">
<partenza coords="536,86.6">Genova</partenza>
<arrivo h="06:47" h_m="17:09" h_t="12:45" coords="143,154">Lecce</arrivo>
<arrivo h="06:48" h_m="21:01" h_t="12:46" coords="1123,434">Cagliari</arrivo>
<arrivo h="07:48" h_m="25:01" h_t="13:46" coords="1123,434">Cagliari</arrivo>
<arrivo h="06:49" h_m="18:16" h_t="12:47" coords="333,334">Venezia</arrivo>
</percorso>
<percorso id="3">
<partenza coords="143.2,382.8">Algeciras</partenza>
<arrivo h="06:47" h_m="17:09" h_t="12:45" coords="143,154">Genova</arrivo>
<arrivo h="08:47" h_m="17:09" h_t="12:45" coords="143,154">Genova</arrivo>
<arrivo h="12:47" h_m="17:09" h_t="12:45" coords="143,154">Genova</arrivo>
</percorso>
<percorso id="4">
<partenza coords="664.9,122.0">Ancona</partenza>
<arrivo h="06:47" h_m="17:09" h_t="12:45" coords="143,154">Zadar</arrivo>
<arrivo h="06:48" h_m="21:01" h_t="12:46" coords="1123,434">Split</arrivo>
<arrivo h="07:48" h_m="25:01" h_t="13:46" coords="1123,434">Bar</arrivo>
<arrivo h="06:49" h_m="18:16" h_t="12:47" coords="333,334">Durres</arrivo>
<arrivo h="07:48" h_m="25:01" h_t="13:46" coords="1123,434">Igoumenitsa</arrivo>
<arrivo h="06:49" h_m="18:16" h_t="12:47" coords="333,334">Patra</arrivo>
<arrivo h="06:48" h_m="21:01" h_t="12:46" coords="1123,434">Cesme</arrivo>
</percorso>
</porti>
Questo risultato (errato!!!) che ottengo:
destinazione:Roma,Genova,Napoli
destinazione:Lecce,Cagliari,Cagliari
destinazione:Genova,Genova,Genova
destinazione:Zadar,Split,Bar
Questo è il risultato corretto che vorrei avere:
destinazione:Roma,Genova,Napoli
destinazione:Lecce,Cagliari,Cagliari,Venezia
destinazione:Genova,Genova,Genova
destinazione:Zadar,Split,Bar,Durres,Igoumenitsa,Pa tra,Cesme
e se nell'xml metto una sola destinazione, esempio:
Codice PHP:
...
<percorso id="3">
<partenza coords="143.2,382.8">Algeciras</partenza>
<arrivo h="06:47" h_m="17:09" h_t="12:45" coords="143,154">Genova</arrivo>
</percorso>
...
mi da errore:
TypeError: Error #1010: Un termine risulta undefined e non ha proprietà.
at lib.utility::XMLLoader/parse()
at lib.utility::XMLLoader/complete()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at flash.net::URLLoader/onComplete()
mentre vorrei che mi restituisse:
Si riesce a risolvere???