Codice PHP:
package lib.utility
{
import flash.events.ErrorEvent;
import flash.events.Event;
import flash.events.EventDispatcher;
import flash.events.IOErrorEvent;
import flash.geom.Point;
import flash.net.URLLoader;
import flash.net.URLRequest;
public class XMLLoader extends EventDispatcher {
private var L:URLLoader;
private var A:Array;
public function XMLLoader (xml_url:String = null):void {
if (xml_url) init(xml_url);
}
public function load (s:String):void {
init(s);
}
private function init (s:String):void {
A = [];
L = new URLLoader(new URLRequest(s));
L.addEventListener(Event.COMPLETE, complete);
L.addEventListener(IOErrorEvent.IO_ERROR, io_error);
}
private function complete (evt:Event = null):void {
var xml:XML = new XML(evt.target.data);
parse(xml);
dispatchEvent(evt);
}
private function io_error (evt:IOErrorEvent = null):void {
dispatchEvent(evt);
}
private function parse (xml:XML):void {
for (var i:uint=0; i<xml.percorso.length(); i++) {
A.push({
id:xml..@id[i],
partenza:xml..partenza[i],
partenza_coords:new Point(xml..partenza[i].@coords.split(",")[0], xml..partenza[i].@coords.split(",")[1]),
partenza_Xcoords:xml..partenza[i].@coords.split(",")[0],
partenza_Ycoords:xml..partenza[i].@coords.split(",")[1],
arrivi: [xml.percorso[i].arrivo[0], xml.percorso[i].arrivo[1], xml.percorso[i].arrivo[2]],
arrivi_coords:[
new Point(xml.percorso[i].arrivo[0].@coords.split(",")[0], xml.percorso[i].arrivo[0].@coords.split(",")[1]),
new Point(xml.percorso[i].arrivo[1].@coords.split(",")[0], xml.percorso[i].arrivo[1].@coords.split(",")[1]),
new Point(xml.percorso[i].arrivo[2].@coords.split(",")[0], xml.percorso[i].arrivo[2].@coords.split(",")[1])
],
arrivi_Xcoords:[
xml.percorso[i].arrivo[0].@coords.split(",")[0],
xml.percorso[i].arrivo[1].@coords.split(",")[0],
xml.percorso[i].arrivo[2].@coords.split(",")[0]
],
arrivi_Ycoords:[
xml.percorso[i].arrivo[0].@coords.split(",")[1],
xml.percorso[i].arrivo[1].@coords.split(",")[1],
xml.percorso[i].arrivo[2].@coords.split(",")[1]
],
arrivi_h:[
xml.percorso[i].arrivo[0].@h,
xml.percorso[i].arrivo[1].@h,
xml.percorso[i].arrivo[2].@h
],
arrivi_h_m:[
xml.percorso[i].arrivo[0].@h_m,
xml.percorso[i].arrivo[1].@h_m,
xml.percorso[i].arrivo[2].@h_m
],
arrivi_h_t:[
xml.percorso[i].arrivo[0].@h_t,
xml.percorso[i].arrivo[1].@h_t,
xml.percorso[i].arrivo[2].@h_t
]
});
}
}
public function get data ():Array {
return A;
}
}
}