Cada vez que creo una marca nueva, (q obtengo desde un xml generado a partir de la BD sql), creo asociado a la marca un InfoWindowTabbedComponent, que es donde visualizaré las fotos asociadas a cada marca (y almacenadas en la tabla fotos en la Bd sql).
El código es el siguiente:
Código :
public function createMarker(id:int, latlng:LatLng, nombre:String, descripcion:String, tipo:String, zoom:int):void {
var markerOptions:MarkerOptions = new MarkerOptions({});
var marker:Marker = new Marker(latlng, markerOptions);
var options:InfoWindowOptions = new InfoWindowOptions({
customContent: new InfoWindowTabbedComponent(marker,id),
});
}
Y la clase InfoWindowTabbedComponent modificada:
Código :
public class InfoWindowTabbedComponent extends UIComponent {
public var marker:Marker;
public var id_marca:int;
public var nombre_foto:String;
public function InfoWindowTabbedComponent(m:Marker,id_m:int) {
marker = m;
id_marca=id_m;
getData();
var panel:Box = new Box();
panel.width = 290;
panel.height = 100;
var hbox:HBox = new HBox();
var labelName1:Label = new Label();
labelName1.text = String(id_marca);
labelName1.width = 70;
var labelName2:Label = new Label();
labelName2.text = String(nombre_foto);
labelName2.width = 70;
}
public function getData():void {
var urlRequest:URLRequest = new URLRequest("phpSqlToXml_fotos.php");
urlRequest.method = URLRequestMethod.POST;
var variables:URLVariables = new URLVariables();
variables.id_marca = id_marca;
urlRequest.data = variables;
var urlLoader:URLLoader = new URLLoader(urlRequest);
urlLoader.addEventListener(Event.COMPLETE,readXml)
}
public function readXml(event:Event):void{
var fotosXML:XML = new XML(event.target.data);
var fotos:XMLList = fotosXML.foto;
var fotosCount:int = fotos.length();
for (var i:Number = 0; i < fotosCount; i++) {
var foto:XML = fotos[i];
var id_foto:int = foto.@id; //Con el id seleccionamos de la marca luego buscamos las fotos y videos
var nombre:String = foto.@nombre;
nombre_foto=nombre;
var descripcion:String = foto.@descripcion;
}
}
Lo que quiero es poder ejecutar readXML(event:Event) a continuación de getData(), como si fuesen una única función para que no se quede esperando con urlLoader.addEventListener(Event.COMPLETE,readXml), sino que justo después de
var urlLoader:URLLoader = new URLLoader(urlRequest); ya pueda obtener los datos del XML con
var fotosXML:XML = new XML(event.target.data); sin necesidad del event.COMPLETE.
El problema está en ese event.target.data que le paso a la funciónn y a partir del cual creo el XML que no lo puedo omitir y tampoco sé si se puede escribir de otra forma sin usar un event.
Espero haberme explicado y que se entienda. Soluciones?
Gracias.
