Ver Mensaje Individual
  #4 (permalink)  
Antiguo 24/03/2011, 10:12
Avatar de TMeister
TMeister
Crazy Coder
 
Fecha de Ingreso: enero-2002
Ubicación: En la Oficina
Mensajes: 2.880
Antigüedad: 22 años, 4 meses
Puntos: 193
Respuesta: Problema con variable xml AS 3.0

Tienes un problema de "logica".

Tu estas "entendiendo" el codigo de forma totalmente lineal, es decir esperas que los eventos se ejecuten de acuerdo a como escribes el codigo, "Lo que escribo primero, se ejecuta primero", esto es una concepción erronea.


Lo primero que haces es declarar los objectos y variables que vas a usar acto seguido, haces una peticion a un recurso externo y por ultimo quieres hacer uso de la variable obtenida, esto queda claro, pero te saltas un paso muy importante.

El que una instrucción este escrita antes que otra no significa que se ejecuta primero. A lo que voy es que la linea
Código actionscript:
Ver original
  1. trace ("---books-----"+VideosR+"------books-------");//DEVUELVE NULL

Se ejecuta antes de que el XML sea cargado, es cuestion de milisegundos pero asi es verifica poniendo un trace y veras el resultado:
Código actionscript:
Ver original
  1. var xmldata2:XML;
  2. var xmlLoaders:URLLoader = new URLLoader();
  3. var xmlDatas:XML = new XML();
  4. var VideosR:XMLList;
  5.  
  6. xmlLoaders.addEventListener(Event.COMPLETE, LoadXMLs);
  7. xmlLoaders.load(new URLRequest("xml/canales.xml"));
  8.  
  9. function LoadXMLs(e:Event):void
  10. {
  11.     xmlDatas=new XML(e.target.data);
  12.     VideosR=xmlDatas.canal.video.(@tags=="Paperback" || @tags=="caca");
  13.     dispatchEvent(new Event(Event.COMPLETE));
  14.     trace (" Llego el XML ---books-----"+VideosR+"------books-------");//DEVUELVE LOS DATOS
  15. }
  16.  
  17. trace ("Esto se ejecuta antes de que llegue el XML ---books-----"+VideosR+"------books-------");//DEVUELVE NULL

Saludos!!