Comunidad de diseño web y desarrollo en internet online

Escuchar eventos de MovieClip

Citar            
MensajeEscrito el 09 Sep 2006 02:40 am
Hola.

Estoy intentando hacer que el evento "onRelease" de un MovieClip se escuche en un objeto en particular. No sé si es posible escuchar sus eventos igual que con los componentes (con un addEventListener), pues me sería realmente útil.

La idea sería algo así (sé que esto no funcionaría):

Código :

miMc.addEventListener("onRelease", objetoOyente);


Puedo poner directamente el miMc.onRelease = function(){}, pero quisiera saber si existe alguna forma más "limpia" donde poder referenciar directamente (sin necesidad de un "var scope:Object = this", antes de definir el onRelease) el objeto actual en donde se está definiendo el evento.


Un saludo ^^

Por [Sheer]

Claber

283 de clabLevel

1 tutorial

Genero:Masculino  

Barcelona

opera
Citar            
MensajeEscrito el 09 Sep 2006 11:26 am
Puedes hacer que se dispare una función
tuMc.onRelease=objeto.funcion//nota que no pongo "()"

Por Zah

BOFH

4290 de clabLevel

27 tutoriales
5 articulos

  Bastard Operators From Hell Editores

Zaragoza, España

firefox
Citar            
MensajeEscrito el 09 Sep 2006 01:11 pm
Probé a hacer eso, pero me lanza la función como si fuese un "onLoad" (es decir, siempre), sin hacer caso al evento onRelease. :crap:

Lo único que me ha funcionado ha sido esto:

Código :

var panelObject:Object = this;
newsPanelLink[i].onRelease = function() {
            panelObject.getController().traceMyName(this._name);
};


Un saludo

Por [Sheer]

Claber

283 de clabLevel

1 tutorial

Genero:Masculino  

Barcelona

opera
Citar            
MensajeEscrito el 09 Sep 2006 01:54 pm

Código :

var ob1:Object = new Object();
ob1.jaja = function() {
   trace("jajaja");
};
asd.onRelease = ob1.jaja;

Por Zah

BOFH

4290 de clabLevel

27 tutoriales
5 articulos

  Bastard Operators From Hell Editores

Zaragoza, España

firefox
Citar            
MensajeEscrito el 09 Sep 2006 02:09 pm
Vaya, eso parece que sí funciona. Pego mi código que contiene el evento:

Código :

   public function onLoadInit(target:MovieClip):Void {
      var linkY:Number = 20;
      for (var i:Number = newsRegs-1; i>=0; --i) {
         newsPanelLink[i] = newsPanelViewContainer.attachMovie("link", "link"+i, newsPanelViewContainer.getNextHighestDepth(), {_x:0, _y:linkY, _alpha:0});
         newsPanelLink[i].onRelease = NewsPanelController(getController()).traceHola("hola"+i);
         linkY += 15;
      }
   }


Pues bien, nada más probar la película, ya me hace el trace (sin tener ese clip el release activado).


Un saludo ^^

Por [Sheer]

Claber

283 de clabLevel

1 tutorial

Genero:Masculino  

Barcelona

opera
Citar            
MensajeEscrito el 09 Sep 2006 10:01 pm

zah escribió:

tuMc.onRelease=objeto.funcion//nota que no pongo "()"

Tal como lo haces no sé si se puede, creo que no, pero de todas formas no veo razón para complicarse la vida

Código :

newsPanelLink[i].onRelease = function() {
   NewsPanelController(getController()).traceHola("hola"+i);
};
[/img]

Por Zah

BOFH

4290 de clabLevel

27 tutoriales
5 articulos

  Bastard Operators From Hell Editores

Zaragoza, España

firefox
Citar            
MensajeEscrito el 09 Sep 2006 10:52 pm
Bien, parece que así sí que funciona (sin los paréntesis). Ahora bien, ¿cómo le paso los parámetros?

Más que nada me interesa saberlo para no salirme nunca del objeto actual (no me gusta tener que hacerlo) y así evitar variables temporales que apunten al presente objeto y, si se puede colocar todo en una sola linea, el código queda como más limpio.

Gracias.

Un saludo

Por [Sheer]

Claber

283 de clabLevel

1 tutorial

Genero:Masculino  

Barcelona

opera
Citar            
MensajeEscrito el 10 Sep 2006 10:44 am
Para pasarle los parámetros, así, y casi con toda seguridad, sólo así:

Código :

newsPanelLink[i].onRelease = function() {
   NewsPanelController(getController()).traceHola("hola"+i);
};

Por Zah

BOFH

4290 de clabLevel

27 tutoriales
5 articulos

  Bastard Operators From Hell Editores

Zaragoza, España

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.