Estoy intentando montar un menu-galeria que carga desde un xml. Quiero que muestre como una especie de pequeñas fichas que contienen varios campos de texto, una imagen y un enlace al pinchar en cada una de ellas. Ádemas que se seleccionen como si fuera una galeria fotografica con movimiento horizontal.
He conseguido que me cargen sin problema todas las fichas, pero a la hora de intentar desplazar el menu solo consigo que me trate todas las imagenes como si fueran un solo objeto, no encuentro la forma de tratarlos de forma independiente para poder hacer el carrusel de fichas.
Os pongo el codigo que he utilizado por el momento, a ver si algien me puede ayudar, Gracias a todos!!:
Clase principal:
Código ActionScript :
package{ import flash.display.*; import flash.events.*; import flash.net.*; public class main_menu_secundario extends MovieClip{ var menu:menudinamico = new menudinamico(); var variacion = 0; var boton1:flash.display.DisplayObject; public function main_menu_secundario():void{ addChild(menu); cargar_listeners(); } public function cargar_listeners():void { btn_iz.addEventListener (MouseEvent.MOUSE_OVER, iz_over); btn_iz.addEventListener (MouseEvent.MOUSE_OUT, iz_out); btn_de.addEventListener (MouseEvent.MOUSE_OVER, de_over); btn_de.addEventListener (MouseEvent.MOUSE_OUT, de_out); addEventListener (Event.ENTER_FRAME, mover); } public function de_over (e:MouseEvent){ variacion = 5; } public function de_out (e:MouseEvent){ variacion = 0; } public function iz_over (e:MouseEvent){ variacion = -5; } public function iz_out (e:MouseEvent){ variacion = 0; } public function mover (e:Event){ boton1 = getChildAt(4); boton1.x = boton1.x + variacion; if (boton1.x < 10){ boton1.x = 713; } if (boton1.x > 713){ boton1.x = 10; } } } }
Clase para cargar el xml:
Código ActionScript :
package{ import flash.display.*; import flash.events.*; import flash.net.*; public class menudinamico extends Sprite{ public var datos:XML; public var loader:URLLoader = new URLLoader(); public var loader_imagen:Loader; public function menudinamico(){ cargarDatos(); } public function cargarDatos():void { loader.addEventListener(Event.COMPLETE, cargado); loader.addEventListener(IOErrorEvent.IO_ERROR, error); loader.load(new URLRequest("datos.xml")); } public function error(e:IOErrorEvent):void { trace("error al cargar el XML: " + e); } public function cargado(e:Event):void { datos = new XML(e.target.data); montar(); } public function montar():void { var boton:ElementoMenu; for (var i:uint = 0; i < datos.elementos.elemento.length(); i++) { boton = new ElementoMenu(); boton.ficha_titulo.text = datos.elementos.elemento[i].titulo; boton.ficha_txt.text = datos.elementos.elemento[i].texto; boton.ficha_referencia.text = datos.elementos.elemento[i].referencia; boton.enlace = datos.elementos.elemento[i].enlace; boton.y = 180; boton.x = i * 200; boton.buttonMode = true; boton.mouseChildren = true; boton.addEventListener(MouseEvent.CLICK, navegar); this.addChild(boton); loader_imagen = new Loader(); loader_imagen.load(new URLRequest(datos.elementos.elemento[i].imagen)); boton.cargar_imagen.addChild(loader_imagen); } } public function navegar(e:MouseEvent):void { navigateToURL(new URLRequest(e.currentTarget.enlace), "_blank"); } } }