El tema es el siguiente. Quiero lograr una lista de imagenes con el componente "List" que cargue su información por medio de XML y cargue las imagenes por medio de loadVars y la información por medio de un archivo HTML externo.
Está todo listo para funcionar pero al clicar en las opciones de la lista no me cambia la imagen y si llegase a cambiar, me carga siempre la misma imagen y no se como hacer para que me cargue la que yo quiero. Les dejo como lo tengo hecho...
En el unico fotograma de la película tengo 3 radio buttons donde selecciono las opciones que quiero ver y el MovieClip (MC) con nombre de instancia "contenedor". Las acciones que tengo aquí alojadas son las que mueven todo y son las siguientes...
Código action:
Ver original
//Cargo el nuevo archivo XML y establesco todas sus propiedades. favoritos = new XML(); favoritos.ignoreWhite = true; favoritos.onLoad = function (success) { if (success){ largo = favoritos.firstChild.childNodes.length; textos = new Array(largo); id = new Array(largo); tipo = new Array(largo); for (i=0; i<largo; i++){ textos[i] = favoritos.firstChild.childNodes[i].attributes.texto; id[i] = favoritos.firstChild.childNodes[i].attributes.id; tipo[i] = favoritos.firstChild.childNodes[i].attributes.tipo; } llenarList(); }else{ trace("No se pudo cargar el XML"); } }; favoritos.load("Lista.xml"); //Aquí creo y establesco las propiedades del componente List. function llenarList() { attachMovie("List", "miLista", 1); miLista.setSize(200, 300); miLista._x = 20 miLista._y = 20 miLista.selectable = true; miLista.multipleSelection = false; miLista.hScrollPolicy = "auto"; miLista.vScrollPolicy = "on"; miLista.rowHeight = 18; losDatos = new Array(); miLista.dataProvider = losDatos; for (i=0; i<textos.length; i++){ losDatos.addItem({label:textos[i], data:id[i]}); } losDatos.sortItemsBy("label", "ASC"); miLista.addEventListener("change", alSeleccionar); favsGroup.addEventListener("click", alClicar); } //Aquí cargo las variables necesarias para que tome las imagenes desde la carpeta. archivo = "galeria.txt"; ruta = "/galeria/imagen"; ext = ".jpg"; total = "6"; i = 1 //Aquí cargo el archivo HTML externo y la primer imagen que se mostrará en pantalla. carga = new LoadVars (); carga.html = true; carga.onLoad = function (ok){ if (ok){ describe = eval("carga.texto"+i); titulo = eval ("carga.titulo"); }; }; carga.load (archivo) loadMovie (ruta+i+ext, "contenedor"); //Aquí empiesa el problema... //Le doy la orden para que al seleccionar la opcion de la lista, cargue la imagen correspondiente //pero al parecer no lo hice bien porque no la carga y sino carga siempre la misma. alSeleccionar = new Object(); alSeleccionar.change = function() { if (i<total) { carga.load(archivo); loadMovie(ruta+i+ext, "contenedor"); } }; //Aquí comienzo a seleccionar las acciones de los radio buttons para concluir. alClicar = new Object(); alClicar.click = function(evento){ if (evento.target.selection == webs_radio){ losDatos.removeAll(); for (i=0; i<textos.length; i++){ if (tipo[i] == "web"){ losDatos.addItem({ label: textos[i], data: urls[i] }); } } losDatos.sortItemsBy("label", "ASC"); } else if (evento.target.selection == blogs_radio){ losDatos.removeAll(); for (i=0; i<textos.length; i++){ if (tipo[i] == "blog"){ losDatos.addItem({ label: textos[i], data: urls[i] }); } } losDatos.sortItemsBy("label", "ASC"); } else if (evento.target.selection == todos_radio){ losDatos.removeAll(); for (i=0; i<textos.length; i++){ losDatos.addItem({ label: textos[i], data: urls[i] }); } losDatos.sortItemsBy("label", "ASC"); } }
El problema, como ya dije, está en la carga de las imagenes al cliquear las opciones pero segun parece esta mal puesto.
Espero que me puedan ayudar.
Saludos!!