Comunidad de diseño web y desarrollo en internet online

galeria Imagenes con AS3, cargaExterna

Citar            
MensajeEscrito el 04 Dic 2010 03:51 am
hola a todos, primero q todo mostraré el codigo para hacer una galeria de imagenes con AS3, por si alguien desea aprovecharlo. Luego haré mi consulta a ver si me ayudan :)

bueno para hacer la galeria pongo en el escenario x cantidad de imagenes con nombres de instancia mPhoto0, mPhoto1, mPhoto2, etc
tambien pongo la misma cantidad de thumbnails (botones con la imagen en miniatura): mThumb0, mThumb1, mThumb2, etc
este es el codigo:

Código ActionScript :

//creo 2 array, uno con x cantidad de las imagenes a mostrar, cambiando el nombre de instancia solo en el numero
//el otro de la misma forma con los botones con thumbnails
var aPhotos:Array = new Array(mPhoto0,mPhoto1,mPhoto2,mPhoto3,mPhoto4,mPhoto5);
var aThumbs:Array = new Array(mThumb0,mThumb1,mThumb2,mThumb3,mThumb4,mThumb5);

function clearPhotos():void //creo una funcion para hacer invisibles todas las imagenes
{
   mPhoto0.visible = false;
   mPhoto1.visible = false;
   mPhoto2.visible = false;
   mPhoto3.visible = false;
   mPhoto4.visible = false;
   mPhoto5.visible = false;
}
clearPhotos(); //llamo la funcion

//funciones para las animaciones rollOver y rollOut  de los thumbnails
function btnOver(e:Event):void
{
   mThumb0.gotoAndPlay("rollover");
}

function btnOut(e:Event):void
{
   mThumb0.gotoAndPlay("rollout");
}

//funcion al dar click a los thumbnails
function thumbClick(e:Event):void
{
   clearPhotos(); //borro la foto que haya aparecido
   var count:Number = aThumbs.length; //variable con el valor  de la cantidad de thumbnails
   var index:Number;//variable sin definir
   for (var i:Number = 0; i<count; i++) // creo un loop para la cantidad de los thumbs
   {
      if (e.target.name == aThumbs[i].name)// si el nombre del thumb es el mismo que uno de los del array
      {
         index = i;// guardo el valor del array en la variable index
      }
   }
   aPhotos[index].visible = true;//el valor guardado en index se ocupa en el array de las imagenes para hacerla visible
}

for (var i:Number = 0; i<aThumbs.length; i++) //se crea un loop para definir los listener a cada boton sin necesidad de repetirlos
{
   aThumbs[i].addEventListener(MouseEvent.ROLL_OUT, btnOut);
   aThumbs[i].addEventListener(MouseEvent.ROLL_OVER, btnOver);
   aThumbs[i].addEventListener(MouseEvent.CLICK, thumbClick);
   aThumbs[i].mouseChildren = false; //mouseChildren para definir la instancia correcta en cada boton
}


bueno, eso es para hacer una galeria con las imagenes dentro del mismo archivo, y aqui viene mi consulta. ¿cómo puedo hacer exactamente lo mismo, pero con imagenes externas?
con este codigo cargo varias imagenes externas:

Código ActionScript :

var images:Array = new Array("imagenes/01.jpg","imagenes/02.jpg","imagenes/03.jpg");

for (var i:uint = 0; i<images.length; i++)
{
   var request:URLRequest = new URLRequest(images[i]);
   var loader:Loader = new Loader();
   loader.x = 100;
   loader.y = 100;
   loader.load(request);
   this.addChild(loader);
}


pero como pueden ver, las imagenes las cargo como strings, entonces no puedo hacer lo mismo que en el primer codigo, ya que cada imagen no es un movieClip ni tienen nombre de instancia.
Tal vez lo estoy viendo de forma equivocada no se, pero si alguien me puede ayudar se lo agradeceria muchisimo.

eso es todo, gracias

Por tonocarvacho

21 de clabLevel



 

chrome
Citar            
MensajeEscrito el 04 Dic 2010 07:56 am
BuenAS:

Una solución, mete los loaders en un array:

Código ActionScript :

var images:Array = new Array("imagenes/01.jpg","imagenes/02.jpg","imagenes/03.jpg"); 
var imagenesCargadas:Array = [];
for (var i:uint = 0; i<images.length; i++) 
{ 
   var request:URLRequest = new URLRequest(images[i]); 
   var loader:Loader = new Loader(); 
   loader.x = 100; 
   loader.y = 100; 
   imagenesCargadas.push(loader);
   loader.load(request); 
   this.addChild(loader); 
}

En el array imagenesCargadas tienes tus imágenes ordenadas: imagenesCargadas[0] sería la primera, imagenesCargadas[1] la segunda, etc.

Por otro lado veo que estás colocando todas las imágenes en la misma posición (100, 100) con lo que aparecen una encima de la otra y solo verás la última.

Un saludo.

Por Lukánicos

Claber

468 de clabLevel



Genero:Masculino  

chrome

 

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