ActionScript - Que falta porfa????

 
Vista:
sin imagen de perfil

Que falta porfa????

Publicado por Edwin (3 intervenciones) el 04/11/2008 23:22:24
Tengo este codigo en un frame, que genera Clip con imagenes desde un XML.

Como hago para que me funcione el evento item.onRelease = function() para cada imagen creada. Porfa soy nuevo en esto

Saludos

// -- posición donde se cargará la primera imagen
x = 3;
y = 3;
_global.maximo = 0;
_global.ancho10 = 0;
// -- ancho y alto de la imagen más 5 pixeles de espacio
ancho = 105;
alto = 80;
// -- numero de columnas
num_columnas = 3;
// -- creo un nuevo objeto XML
miXML = new XML();
// -- ignorar espacios
miXML.ignoreWhite = true;
// -- proceso si la carga tuvo éxito
miXML.onLoad = function(succes) {
if (succes) {
// -- por cada nodo hijo del nodo principal...
for (var i = 0; i<this.firstChild.childNodes.length; i++) {
_global.maximo=i;
_global.ancho10=width;
// -- delaro una variable que recoje el atributo del nodo (nombre de la imagen)
galeria = this.firstChild.childNodes[i].attributes.id;
_root.createEmptyMovieClip("diapo"+i, i+100);
item = _root["diapo"+i];
ultimo = _root["diapo" + i];
item.loadMovie(galeria);
item._x = x;
item._y = y;
item.onRelease = function()
{
trace(i);
}
// -- incremento el valor de x para la siguiente imágen
x += ancho;
// -- incremento en 1 el número de columnas
columna += 1;
// -- ruptura de control, control de número de columnas
/*if (columna == num_columnas) {
columna = 0;
x -= (ancho*num_columnas);
y += alto;
}*/
}
}_root.but1.label=_global.maximo;//trace(ultimo._x);
};
// -- cargar XML
miXML.load("imagenes.xml");
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

Asignar evento a imágenes creadas dinámicamente desde XML

Publicado por Alejandro (369 intervenciones) el 24/06/2023 00:12:50
Para asignar el evento `onRelease` a cada imagen creada dinámicamente desde XML, necesitas realizar algunos ajustes en el código. Aquí tienes una versión modificada que incluye el evento `onRelease` para cada imagen:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
// -- posición donde se cargará la primera imagen
var x:Number = 3;
var y:Number = 3;
_global.maximo = 0;
_global.ancho10 = 0;
// -- ancho y alto de la imagen más 5 pixeles de espacio
var ancho:Number = 105;
var alto:Number = 80;
// -- numero de columnas
var num_columnas:Number = 3;
var columna:Number = 0;
 
// -- creo un nuevo objeto XML
var miXML:XML = new XML();
// -- ignorar espacios
miXML.ignoreWhite = true;
// -- proceso si la carga tuvo éxito
miXML.onLoad = function(success:Boolean) {
  if (success) {
    // -- por cada nodo hijo del nodo principal...
    for (var i:Number = 0; i < this.firstChild.childNodes.length; i++) {
      _global.maximo = i;
      _global.ancho10 = width;
      // -- delaro una variable que recoje el atributo del nodo (nombre de la imagen)
      var galeria:String = this.firstChild.childNodes[i].attributes.id;
      _root.createEmptyMovieClip("diapo"+i, i+100);
      var item:MovieClip = _root["diapo"+i];
      item.loadMovie(galeria);
      item._x = x;
      item._y = y;
      item.i = i; // Asignar el valor de i a una propiedad personalizada del clip de película
 
      // -- asignar evento onRelease a cada imagen
      item.onRelease = function() {
        trace(this.i); // Acceder a la propiedad personalizada para obtener el valor de i
      }
 
      // -- incremento el valor de x para la siguiente imágen
      x += ancho;
      // -- incremento en 1 el número de columnas
      columna += 1;
      // -- ruptura de control, control de número de columnas
      if (columna == num_columnas) {
        columna = 0;
        x = 3;
        y += alto;
      }
    }
    _root.but1.label = _global.maximo;
  }
};
 
// -- cargar XML
miXML.load("imagenes.xml");

En esta versión del código, se asigna el valor de `i` a una propiedad personalizada `i` del clip de película `item`. Luego, dentro de la función `item.onRelease`, se puede acceder a esta propiedad personalizada `i` para obtener el valor correspondiente de `i` para cada imagen.

Recuerda asegurarte de que las imágenes cargadas y sus clips de película correspondientes tengan las interacciones necesarias para que el evento `onRelease` funcione correctamente.

Espero que esto te ayude a asignar eventos a las imágenes creadas dinámicamente desde XML. ¡Buena suerte con tu proyecto!
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