flash as2 movieclip onpress

NeB1

Buenas a todos,

Tengo que automatizarle una cosa a un cliente de su pelicula flash, y para eso necesito añadir dinamicamente los eventos onPress a una serie de movieclips. El tema es que si aprieto encima del movieclip, y dentro de su objeto le pongo el código

on(press)
{
    trace("hola");
}

funciona bien, pero no me interesa, ya que a priori esos movieclips no existen, entonces necesito hacerlo desde el frame principal de la forma:


_bannerA.onPress = function()
{
	trace("Hola");
}

Que no funciona, sin embargo esto sí funciona:

_bannerA.loadMovie( imagenes[( _nImagen % imagenes.length )] );

Con lo que el objeto _bannerA sí existe, pero no me permite ponerle un evento onPress al vuelo, no sé porqué.

Pd: imagenes[( _nImagen % imagenes.length )] devuelve la dirección de la imagen que quiero cargar, por si os rallais al ver el código.

Pd2: Puto AS2

NeB1

Como no encuentro una solución válida, de momento he puesto un botón invisible encima del movieclip, de forma que si el movieClip se llama _bannerA, el boton se llama _btBannerB

el tema es que le estoy haciendo una minipelicula, que a través de un xml puede crear banners, que tienen tantas imagenes como el quiera que irán rotando, según el tiempo que especifique en el atributo de la imagen del banner. Y para cada imagen, se cambia el atributo onPress, para que te lleve a un sitio o a otro.

Crawler

Lo más fácil, como tu has hecho, es ponerle el evento al contenedor y no al contenido.

Creo que si que existe algún tipo de "live()" que te permite que los objetos creados a posteriori hereden los comportamientos predefinidos, pero nunca me ha hecho falta, así que no lo tengo muy claro.

P.D. "El pesado de la usabilidad" dice: Si es pa' un banner tiene un pase, pero para todo lo demás, usa siempre "release" en vez de "press" ;)

NeB1

#3 siempre uso on release xD pero el cliente me dijo que pusiera on press

Usuarios habituales

  • NeB1
  • Crawler