Llevo mirándolo durante la tarde y no consigo lograr que la máscara aparezca, tengo un mc con una imagen que será el marco de los thumbnails que llevo a escena. Dentro de este mc creo un cuadrado que será la máscara y dentro añado los thumbnails:
Código ActionScript :
// XML DE DATOS DE GALERÍA
var listadoFoto:XML; // Declaramos el objeto XML
var infoFoto:XMLList = new XMLList(); // Creamos el objeto que almacenará los nodos del XML
var urlGaleria:URLRequest = new URLRequest("xml/galeria.xml"); // Declaramos la ruta del XML
var contenedorGaleria:URLLoader = new URLLoader(); // Creamos el contenedor para el XML
var tituloFoto:String // Variable que almacenará el nombre de la foto
var itemFoto:Foto; // Declaramos un objeto Foto que permitirá traer el mc item_lista a escena y aplicarle propiedades
contenedorGaleria.load(urlGaleria); // Cargamos en el contenedor los datos del XML
var filaThumb:Thumbs = new Thumbs(); // Creamos una variable para el objeto Thumbs
var indice:uint = 0; // Variable
filaThumb.x=83;
filaThumb.y=494;
addChild(filaThumb); // Añadimos el objeto Thumbs a escena
// Dibujar un cuadrado y añadirlo a la lista de visualización.
var square:Sprite = new Sprite();
square.graphics.lineStyle(1, 0x000000);
square.graphics.beginFill(0xff0000);
square.graphics.drawRect(0, 0, 600, 100);
square.graphics.endFill();
filaThumb.addChild(square);
contenedorGaleria.addEventListener(Event.COMPLETE, cargado);
function cargado(e:Event){
listadoFoto = XML(contenedorGaleria.data); // Cargamos en el objeto XML los datos del archivo XML
infoFoto = listadoFoto.children(); // Cargamos los nodos del XML en el XMLList;
cargaThumbs(); // Iniciamos la función que carga los thumbnails
}
// Creamos una función que colocará los thumbs y asignara propiedades a cada uno
function cargaThumbs(){
for(var i:uint;i<infoFoto.length();i++){
// Se crea un objeto Foto por cada thumbnail
itemFoto=new Foto();
urlGaleria = new URLRequest("img/gallery/thumb/"+infoFoto[i].@img); // Recogemos la url de los thumbnails
var foto:Loader=new Loader(); // Creamos un cargador para las fotos
//foto.width = 600;
foto.load(urlGaleria); // Cargamos los thumbnails en el cargador
itemFoto.x=5+98*i; // Colocamos los thumbnails
itemFoto.y=16;
// Asignamos un nombre a cada thumbnail, los nombres se definen por la posición del nodo de cada imagen en el XML
itemFoto.name=String(i);
// Hace que se muestre la mano al pasar sobre las miniaturas
itemFoto.buttonMode=true;
itemFoto.mouseChildren=false;
itemFoto.addEventListener(MouseEvent.CLICK,cargaBig); // Se añade un listener a cada miniatura para cargar su imagen grande correspondiente
itemFoto.addChild(foto); // Añadimos a escena los thumbnails
square.addChild(itemFoto);
}
// Hacer que el objeto square sea una máscara del objeto itemFoto.
itemFoto.mask = square;
De esta forma, cuanod paso sobre el áre donde deben estar los thumbails me aparece una mano para cada thumb y si pulso se me carga la imagen en grande en su lugar correspondiente. Si comento la línea:
Código ActionScript :
// Hacer que el objeto square sea una máscara del objeto itemFoto.
itemFoto.mask = square;
Se ve el square y los thumbs pero no hace el efecto máscara, viéndose todos los thumbs en lugar de los 6 que necesito.