Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/03/2010, 14:04
Avatar de alfonsoortega
alfonsoortega
 
Fecha de Ingreso: mayo-2003
Ubicación: Bogotá
Mensajes: 54
Antigüedad: 21 años
Puntos: 0
Problema con carga dinámica de imágenes

Estimados amigos del foro:

Estoy desarrollando una minigalería de fotos que no utilice XML para no embrollarme la cabeza (no conozco XML y apenas entiendo algo de AS2). La idea es esta:

un swf en cuya línea de tiempo principal hay un MovieClip de tamaño (325*440px). Dentro de este MC está el siguiente código para cargar las imágenes (vale decir que las imágenes se encuentran en la carpeta "personas", todas de 75x50 pix):

Código:
 
var numFotos:Number = 20;
var col:Number = 4;
var fil:Number = Math.floor(numFotos/col);
var posX:Number = 5;
var posY:Number = 5;
var maxX:Number = 0;
 
for (i=0; i<numFotos; i++) {
this.createEmptyMovieClip ("mc", this.getNextHighestDepth()); 
mc.duplicateMovieClip("mc"+i,i);
this["mc"+i]._x = (80*maxX)+posX;
this["mc"+i]._y = posY;
this["mc"+i].loadMovie("personas/foto"+i+".png", i);
maxX++
this["mc"+i].onRelease = function (){
muestraMensaje();
};
trace (this["mc"+i]);
if(maxX == col) {
maxX=0;
posY = 55 + posY;
}
}
function (muestraMensaje) {
trace ("hola");
}
Hasta aquí toda funciona de maravilla; es decir, las miniaturas de las imágenes se cargan a la perfección, y si cambio el valor inicial de las variables "numFotos" y "col" se reflejan los cambios en la cantidad de fotos que se muestran o en la cantidad de columnas en que éstas se organizan.

Mi problema está en que cuando intento que cada MovieCLip creado con la miniatura se comporte como botón para poder asignarle acciones (por ejemplo, que cargue la foto correspondiente en tamaño más grande), no puedo lograr que los movies se comporten como botón (lo he intentando con el código que se encuentra señalado en rojo, más arriba, es decir:

this["mc"+i].onRelease = function (){
muestraMensaje();
};

Y fuera del bucle he creado la función "muestraMensaje" así:

function (muestraMensaje) {
trace ("hola");
}

Un cosa más: para probar qué estoy haciendo mal puse un movieClip manualmente en el escenario con nombre de instancia "fot" y en el primer fotograma las acciones:

this.fot.onRelease = function (){
trace ("hola");
};
y funciona.

Podría alguien explicarme por qué los MC de las fotos no adoptan el comportamiento de botón y cómo puedo modificar el código para que lo hagan.

Mil gracias de antemano.

Alfonso Ortega
__________________
Alfonso Ortega