Comunidad de diseño web y desarrollo en internet online

Pasar xml a flash a traves de la url con actionscript 3

Citar            
MensajeEscrito el 20 Jul 2010 10:07 pm
Saludos a toda la gente del foro. Soy nuevo tanto en el foro como en Actionscript 3.
tengo el siguiente problema, ojalá puedan echarme la mano.
Estoy creando una galeria en flash con as3, la galeria la alimenta un xml, hasta ahi todo bien, donde me encuentro atorado es que el xml no va a ser siempre el mismo, se va a ir generando en cada sesion, este xml me lo van a pasar a traves de una variable en el url del swf (ej. micatalogo.com/catalogo.swf?datos=333.xml) y ese es mi problema, ¿como hago para decirle a flash que tome "333.xml" como el xml que va a alimental al catalogo?
Estoy muy atorado en eso, ojala puedan echarme la mano, aqui pongo el codigo con el que estoy leyendo el xml:

Código ActionScript :

public function cargarXML():void {
      requestXML=new URLRequest();
      requestXML.url="333.xml";
         loaderXML=new URLLoader();
         loaderXML.load(requestXML);
         loaderXML.addEventListener(Event.COMPLETE, xmlCargado, false, 0, true);
      
      }


Mil gracias de antemano por la ayuda

Por Miztoquio

2 de clabLevel



 

firefox
Citar            
MensajeEscrito el 20 Jul 2010 10:47 pm
Le puedes pasar el dato como flashvars, incluso usando solo Javascript para capturar el querystring en la url

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 20 Jul 2010 11:43 pm
He usado ya el flashvars para pasar el valor, el problema es que cuando intento obtenerlo desde flash me manda un error, el codigo que estoy usando para obtener la variable es:

Código ActionScript :

public function cargarXML():void {
var paramObj:String = LoaderInfo(this.root.loaderInfo).parameters;
trace(paramObj["datos"]);


         requestXML=new URLRequest();
      requestXML.url=paramObj;
         loaderXML=new URLLoader();
         loaderXML.load(requestXML);
         loaderXML.addEventListener(Event.COMPLETE, xmlCargado, false, 0, true);
      
      }


flashvars lo aplique asi:

Código HTML :

  <param name="allowScriptAccess" value="sameDomain" />
  <param name="allowFullScreen" value="false" />
  <param name="movie" value="index2.swf" />
  <param name="quality" value="high" />
  <param name="bgcolor" value="#ffffff" />
  <param name="flashvars" value="datos=333.xml"/>
  <embed src="index2.swf" quality="high" bgcolor="#ffffff" width="699" height="333" name="index2" align="middle" allowscriptaccess="sameDomain" allowfullscreen="false" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer" flashvars="datos=333.xml" />


y me manda el siguiente error el flash: 1180: Call to a possibly undefined method LoaderInfo.

Por Miztoquio

2 de clabLevel



 

firefox
Citar            
MensajeEscrito el 21 Jul 2010 01:45 am
Hay varias cosas que te aconsejo y otras que no mencionaste como por ejemplo algo que puede fallar es el scope de el objeto LoaderInfo , si esa función esta en el Document class no debe dar problemas , en caso contrario pasa la referencia del LoaderInfo , otro problema puede ser que te falta comprobar si esa variable del objeto parameters existe y que tenga valor , vamos que no sea igual a null , teniendo en cuenta esto te sugiero usa swfobject para incrustar en el html el swf se me hace más limpio el code y con estándares, bueno dicho esto prueba con el siguiente código , nota que debes probar desde el browser para que se vea reflejado la url :

Código ActionScript :

public function cargarXML():void
{
    // o bien la referencia de LoaderInfo en caso de que esta clase no acceda directo
   var _pParameter:Object = LoaderInfo(this.loaderInfo).parameters;
   var _pURL:String = _pParameter.datos;
   
   if(_pURL != null) {
      requestXML = new URLRequest(_pURL);
      loaderXML = new URLLoader();
      loaderXML.addEventListener(Event.COMPLETE, xmlCargado, false , 0 , true);
      loaderXML.load(requestXML);
      
   }
}


Jonathan

Por maneuver

243 de clabLevel



Genero:Masculino  

Mexico City

firefox
Citar            
MensajeEscrito el 21 Jul 2010 04:58 am
Mil gracias Jonathan, el código funcionó de maravilla, seguiré tus consejos del swfobject para optimizar el incrustamiento en el html.

Por Miztoquio

2 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.