ActionScript - Catalogo en flash con attachMovie

 
Vista:

Catalogo en flash con attachMovie

Publicado por Martin (1 intervención) el 07/11/2006 21:27:54
Se trata de un catalogo de productos donde los elementos estan siendo llamados desde un archivo xml: sandwiches.xml
el problema es q estoy tratando de mostrar un imagen por cada producto dentro de un movieclip, cada ruta de imagen esta dentro del arreglo image[], pero me devuelve para todas el ultimo de ellos, alguien me podria dar la solucion, q es lo q esta mal aqui.

bueno aca les mando el código a ver si alguien lo puede comprender y ayudarme:

aqui_posx = -4.300000E+000;
aqui_posy = 3.040000E+001;

var obj_xml:XML = new XML();

obj_xml.ignoreWhite = true;
obj_xml.load("sandwiches.xml");

obj_xml.onLoad = function(exito) {

if (exito) {
trace(obj_xml.firstChild.childNodes.length)
image = [];
var I:Number = 0;
contenido.pantalla_mc._visible=false;
for (I = 0; I <= (obj_xml.firstChild.childNodes.length - 1); I++)
{

contenido.attachMovie("agen_00","agen_" + I, I);
contenido["agen_" + I]._x = aqui_posx;
contenido["agen_" + I]._y = aqui_posy;

aqui_posy = aqui_posy + contenido["agen_" + I]._height;
contenido["agen_" + I].txt_actividad.text = obj_xml.firstChild.childNodes[I].childNodes[2].firstChild.nodeValue;
contenido["agen_" +I].txt_dias.text = obj_xml.firstChild.childNodes[I].childNodes[1].firstChild.nodeValue;
image[I] = obj_xml.firstChild.childNodes[I].childNodes[0].firstChild.nodeValue;
//contenido["agen_" +I].txt_imagen.text = obj_xml.firstChild.childNodes[I].childNodes[0].firstChild.nodeValue;

//EVENTO ONRELEASE
//contenido.pantalla_mc.loadMovie(image[0]);
var img:String = obj_xml.firstChild.childNodes[I].childNodes[0].firstChild.nodeValue;
contenido["agen_" +I].botoncito.botoncito2.onRelease = function() {
contenido.pantalla_mc.loadMovie(img,1); // --> ACA ESTA EL PROBLEMA
}

}
} else {
cuerpo_txt.text = "Error";
}
};
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Problema al cargar imágenes desde un archivo XML

Publicado por Alejandro (369 intervenciones) el 22/06/2023 22:00:09
El problema en tu código está en la parte donde asignas el evento `onRelease` al botón `botoncito2`. En ese punto, la variable `img` ya no tiene el valor correcto y siempre se carga la última imagen del arreglo. Para solucionarlo, debes hacer uso de una función anónima para capturar el valor correcto de `img` en cada iteración del bucle. Puedes hacerlo de la siguiente manera:

1
2
3
4
contenido["agen_" + I].botoncito.botoncito2.onRelease = function() {
    var imagen:String = img; // Capturar el valor correcto de img
    contenido.pantalla_mc.loadMovie(imagen, 1);
}

Al introducir una nueva variable `imagen` dentro de la función anónima, aseguras que el valor de `img` se mantenga correctamente asignado a cada botón individualmente.

Con esta solución, cada botón cargará la imagen correspondiente al hacer clic en él, en lugar de cargar siempre la última imagen del arreglo.

Recuerda que este cambio debe realizarse dentro del bucle `for` donde se crean los botones y se asigna el evento `onRelease`.

Espero que esta solución resuelva tu problema y te permita cargar las imágenes correctamente en cada botón.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar