Foros del Web » Creando para Internet » Flash y Actionscript »

Almacenar datos en variable

Estas en el tema de Almacenar datos en variable en el foro de Flash y Actionscript en Foros del Web. Buenas, hice un código para hacer una galería de imágenes thumb que al pinchar se abriesen en grande, en una ventana javascript. La forma en ...
  #1 (permalink)  
Antiguo 14/03/2006, 04:28
 
Fecha de Ingreso: febrero-2003
Mensajes: 39
Antigüedad: 21 años, 1 mes
Puntos: 1
Almacenar datos en variable

Buenas, hice un código para hacer una galería de imágenes thumb que al pinchar se abriesen en grande, en una ventana javascript.
La forma en que lo hice es un poco pesada, y la repito para cada foto que cargo, así que traté de concentrarlo:

for (j=1;j<=5;j++){
if (this ["foto"+j] != "N/A") {
fotogrande=this["foto"+j];
fotoenana=this["foto"+j+"b"];
_root.anclaDetalles.mc_detalles1["ancla"+j].loadMovie("fotografias/small/"+ fotoenana,getNextHighestDepth());
_root.anclaDetalles.mc_detalles1["foto"+j].onRelease=function(){
getURL("javascript:NewWindow=window.open('fotograf ias/" + fotogrande +"','Fotografia'"));
}
}

Me funciona todo salvo el onRelease, que me abre siempre la misma imagen en la ventana, la ultima del bucle for, porque va machacando la variable con el ultimo valor. ¿Cómo podría abrir las imagenes correspondientes, o guardarlas en variables distintas?

GRACIAS
  #2 (permalink)  
Antiguo 15/03/2006, 02:38
 
Fecha de Ingreso: marzo-2006
Mensajes: 25
Antigüedad: 18 años, 1 mes
Puntos: 0
Un array por ejemplo.

lista_fotos:Array = new Array();
for(var i=0;i<cantidad de fotos(p.e. 20);i++){
lista_fotos[i] = "foto"+i+".jpg";
}

y luego tu código
  #3 (permalink)  
Antiguo 15/03/2006, 10:07
Avatar de luistar  
Fecha de Ingreso: marzo-2005
Ubicación: Argentina
Mensajes: 939
Antigüedad: 19 años, 1 mes
Puntos: 0
hola
creo que hay varias cosas que haces mal:

loadMovie("fotografias/small/"+ fotoenana,getNextHighestDepth());

segun eso fotoenana debe ser una cadena

pero al comienzo lo defines de manera diferente

fotoenana=this["foto"+j+"b"];

a menos que this sea un objeto cuyos elementos sean cadenas y sus nombres sean ["foto"+j+"b"]

y lo mismo para fotogrande

haaaa... y getNextHighestDepth() no es un parámetro de loadMovie

lo que pude entender es:
dentro de mc_detalles1 tienes los movieclip donde debes cargar las miniaturas
esos movieclips se llaman
ancla1, ancla2, ancla3, ancla4 y ancla5
y al hacer click en c/u se tiene que abrir una ventana con la foto

eso lo puedes hacer así:
primero dentro de cada anclaX crea un movieClip vacío llamado fotito

Código:
var donde:MovieClip = _root.anclaDetalles.mc_detalles1;
for(var i in donde){
	if(donde[i]._name.substr(0,5)=='ancla'){
		donde[i].fotito.loadMovie('fotografias/small/'+donde[i]._name.substr(5)+'b.jpg');
		donde[i].onRelease = function(){
			trace('getURL("fotografias/'+this._name.substr(5)+'.jpg","_blank");');
		}
	}
}
:D

que hacemos es usar parte del nombre de cada movieclip

donde[i]._name.substr(0,5)=='ancla'
con esto comparamos que los cinco primeros caracteres del nombre sea 'ancla'

donde[i]._name.substr(5)
y eso es todos los caracteres apartir del 5
osea nos dara los numeros (1,2,3,4 y 5)

:D
__________________
Si digo que soy mentiroso. ¿Lo soy?
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:09.