Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/12/2010, 21:47
tonocarvacho
 
Fecha de Ingreso: mayo-2009
Mensajes: 7
Antigüedad: 14 años, 11 meses
Puntos: 0
galeria Imagenes con AS3, cargaExterna

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:
//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:
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