El còdigo es el siguiente:
import mx.utils.Delegate;
class xmlParser {
private var _imageUrls:Array;
private var _imageLocations:Array;
private var _xml:XML;
private var _TotalImages:Number;
public function xmlParser() {
_xml = new XML();
_xml.ignoreWhite = true;
_imageUrls = new Array();
_imageLocations = new Array();
_TotalImages = 0;
}
public function get ImagesLocations():Array {
return _imageLocations;
}
public function get ImagesUrls():Void
{
return _imageUrls;
}
private function SetTotalImages(total:Number):Void
{
_TotalImages = total;
}
private function AddUrl(val:String):Void
{
_imageUrls.push(val);
}
private function AddLocation(val:String):Void {
_imageLocations.push(val);
}
public function StartXmlParser(XmlFile:String):Boolean
{
_xml.onLoad = Delegate.create(this,Success);
return _xml.load(XmlFile);
}
public function get TotalImages():Number
{
return _TotalImages;
}
private function Success()
{
SetTotalImages(Number(_xml.firstChild.childNodes.length));
var k:Number = 0;
if(_xml.status == 0)
{
while(k < _xml.firstChild.childNodes.length)
{
AddUrl(string(_xml.firstChild.childNodes[k].attributes.URL));
AddLocation(string(_xml.firstChild.childNodes[k].attributes.location));
k++;
}
}
}
}
El problema es que al retornarme el vector, me lo devuelve vacio y se que levanta bien los datos desde el xml, porque si hago un trace de _imageUrls en el metodo AddUrl , me muestra los datos correctamente:
es decir:
private function AddUrl(val:String):Void
{
_imageUrls.push(val);
trace(_imageUrls);
}
Estoy trabajando con AS 2.0 y la estructura del xml seria masomenos asi:
<?xml version="1.0" encoding="ISO-8859-1"?>
<images>
<image location="" URL=""/>
<image location="" URL=""/>
<image location="" URL=""/>
</images>
[/b]
