Comunidad de diseño web y desarrollo en internet online

cambiar urlRequest de un xml

Citar            
MensajeEscrito el 04 May 2010 10:53 pm
hola, bueno soy novato, pero ahi ando aprendiendo. mi problema es k tengo un menu con nueve botones, mi idea es que cada boton me lleve a una galeria, ya hice la galeria y funciona muy bien al hacer click en un boton. Estoy usando xml. Entonces lo que quiero es que cada vez que pulse un boton me cambie el archivo xml que carga la galeria. he intentado mucho y nada hasta ahora, asi k espero me puedan ayudar.

aki esta mi codigo.

Código :

var XMLURLLoader:URLLoader = new URLLoader();
var request:URLRequest = new URLRequest("portfolio.xml");
XMLURLLoader.load(request);
XMLURLLoader.addEventListener(Event.COMPLETE, processXML);

//este es el código inicial para la galería

function processXML(event:Event):void {
   var theXMLData:XML=new XML(XMLURLLoader.data);
   totalImages=theXMLData.title.length();
   for (var i:Number = 0; i < totalImages; i++) {
      titleArray.push(theXMLData.title[i]);
      descriptionArray.push(theXMLData.description[i]);
      largeImageArray.push(theXMLData.largeImage[i]);
      thumbnailImageArray.push(theXMLData.thumbImage[i]);
   }
   loadThumbnail();
}


he intentado poner la variable request y cambiar la direccion desde una funcion por cada boton, pero no funciona, bueno espero me puedan ayudar, por k ya he buscado en google bastante. gracias.

Por paco18ch

10 de clabLevel



Genero:Masculino  

Mexico

chrome
Citar            
MensajeEscrito el 05 May 2010 04:01 am
deberia de funcionar como tu dices ya que se puede hacer de la formas que te salieron mal hehe , pero lo de la funcion seria una opcion :

Código ActionScript :


import flash.net.URLRequest;
import flash.net.URLLoader;
import flash.events.Event;
import flash.events.MouseEvent;

function initGallery(path:String = null):void
{
   trace(path);
   
   var xmlLoader:URLLoader = new URLLoader();
   xmlLoader.addEventListener(Event.COMPLETE, onCompleteHandler);
   xmlLoader.load(new URLRequest(path));
   
}

function onCompleteHandler(e:Event):void
{
   //contruyes la Galleria
   
}


//--ejemplo
loadGal0_btn.addEventListener(MouseEvent.CLICK, onClickHandler);
loadGal1_btn.addEventListener(MouseEvent.CLICK, onClickHandler);

function onClickHandler(e:MouseEvent):void
{
   switch(e.currentTarget.name) {
      case "loadGal0_btn":
      initGallery("galeria_xyz.xml");
      break;
      
      case "loadGal1_btn":
      initGallery("galeria_abc.xml");
      break;
      
      default:
      break;
   }
}



Jonathan

Por maneuver

243 de clabLevel



Genero:Masculino  

Mexico City

firefox
Citar            
MensajeEscrito el 05 May 2010 05:18 am
:) :) :) :)
Muchisimas gracias, es absolutamente lo que me has dado, y localice el error.
el código para construir mi galería es este:

Código :

function processXML(e:Event):void {
   var theXMLData:XML = new XML(XMLURLLoader.data);
   totalImages=theXMLData.title.length();
   for (var i:Number = 0; i < totalImages; i++) {
      titleArray.push(theXMLData.title[i]);
      descriptionArray.push(theXMLData.description[i]);
      largeImageArray.push(theXMLData.largeImage[i]);
      thumbnailImageArray.push(theXMLData.thumbImage[i]);
   }
   loadThumbnail();
}


y al parecer el error q me daba en todos los casos se debia a q esta variable tenia que estar fuera de la función y declarada en el action.

Código :

 var XMLURLLoader:URLLoader = new URLLoader(); 

POr q???, desconozco la razón, pero ya me funciona, gracias men.

Por paco18ch

10 de clabLevel



Genero:Masculino  

Mexico

chrome
Citar            
MensajeEscrito el 05 May 2010 08:01 am
Paco, deberías acostumbrarte a usar las propiedades del Evento, para acceder a quién lo ha provocado

Código ActionScript :

//En lugar de
function processXML(e:Event):void {
   var theXMLData:XML = new XML(XMLURLLoader.data); 
   totalImages=theXMLData.title.length();
   ....
}
//escribiremos
function processXML(e:Event):void {
   var loader:URLLoader=e.target as URLLoader //<---recogemos en una variable
                                                       //<--el "target" y hacemos una "conversión de cast"
   var theXMLData:XML = new XML(loader.data); //<--usamos la variable
   totalImages=theXMLData.title.length();
   ....
}


Si lo haces de la primera forma, la variable XMLURLLoader la tienes que declarar "a nivel global". Vamos, NO la puedes declarar DENTRO de una función, porque no tendrá valor fuera de dicha función. Pensemos que una función sólo puede acceder a variables que
1.-Estén en el argumento ó
2.-Estén definidas "a nivel global" -fuera de cada función-
3.-También podrían acceder a los objetos de la displayList que estén en el stage.

Por Eliseo2

710 de clabLevel



 

firefox
Citar            
MensajeEscrito el 05 May 2010 10:09 pm
ok , gracias pero ahora tengo otra problemilla.

[url=http://foros.cristalab.com/se-puede-cambiar-el-contenido-a-un-array-t87413/][/url]

Por paco18ch

10 de clabLevel



Genero:Masculino  

Mexico

chrome

 

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