Te pongo un codigo que hace algo parecido. Una galeria de imagenes con dos flechas para cambiar a imagen sig y anterior.
Código ActionScript :
package {
import flash.display.*;
import flash.events.*;
import flash.text.*;
import flash.net.*;
public class codigo extends MovieClip {
public var currentImg:Number;
public var lastImg:Number;
public var xml:XML;
public var loader:Loader;
public var xmlLoader:URLLoader;
public function codigo() {
loader = new Loader();
addChild(loader); //Añadimos loader al stage principal q será donde se cargan las fotos
xmlLoader = new URLLoader(new URLRequest("./url/galeria.xml"));
xmlLoader.addEventListener(Event.COMPLETE, parseXML);//si se carga bien el xml se ejecuta la funcion parseXML
btnAnt.stop();//Need to stop the arrows from flickering
btnSig.stop();
}
protected function parseXML(e:Event):void {
//Controladores eventos botones
btnSig.addEventListener(MouseEvent.MOUSE_UP, nextImg);
btnSig.addEventListener(MouseEvent.MOUSE_OUT, arrowOut);
btnSig.addEventListener(MouseEvent.MOUSE_OVER, arrowOver);
btnAnt.addEventListener(MouseEvent.MOUSE_UP, prevImg);
btnAnt.addEventListener(MouseEvent.MOUSE_OUT, arrowOut);
btnAnt.addEventListener(MouseEvent.MOUSE_OVER, arrowOver);
//guarda la estructura del arbol xml en la variable xml
xml = new XML(e.currentTarget.data);
lastImg = xml.img.length() - 1;//cuantas etiquetas img hay (para saber cuantas gallery(raiz) seria con xml directamente xml.length()
currentImg = 0;
loadImg();
}
protected function loadImg():void {
loader.x = (stage.width + 25 - Number(xml.img[currentImg].@width))/2;
loader.y = (stage.height - 50 - Number(xml.img[currentImg].@height))/2;
loader.load(new URLRequest(xml.@dir + xml.img[currentImg].@file));
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadFin);
}
protected function loadFin(e:Event):void {
itexto.htmlText = xml.img[currentImg];
}
//Funciones asignadas a los controladores de los botones
protected function arrowOut(e:MouseEvent):void {
MovieClip(e.currentTarget).gotoAndStop(1);
}
protected function arrowOver(e:MouseEvent):void {
MovieClip(e.currentTarget).gotoAndStop(2);
}
protected function nextImg(e:MouseEvent):void {
loader.unload();
currentImg = (currentImg < lastImg)? currentImg + 1 : 0;
loadImg();
}
protected function prevImg(e:MouseEvent):void {
loader.unload();
currentImg = (currentImg > 0)? currentImg - 1 : lastImg;
loadImg();
}
}
}