Truco muy corto: addEventListener () AS3, un manejador de los eventos más

En ActionScript 3.0 se debe utilizar addEventListener() para interceptar cualquier caso:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/ **
* Dado un mc MovieClip, se establece eventos y controladores
* /
( MouseEvent . CLICK , on_click ) ; . mc addEventListener ( MouseEvent CLICK, on_click.);
( MouseEvent . ROLL_OVER , on_roll_over ) ; . mc addEventListener ( MouseEvent ROLL_OVER, on_roll_over.);
( MouseEvent . ROLL_OUT , on_roll_out ) ; . mc addEventListener ( MouseEvent ROLL_OUT, on_roll_out.);
/ **
* Funciones de lanzador de los eventos mencionados
* /
e : MouseEvent ) : void { on_click función (e: MouseEvent ): void {
/ / Haga clic en
}
e : MouseEvent ) : void { on_roll_over función (e: MouseEvent ): void {
/ / Pase el cursor sobre
}
e : MouseEvent ) : void { on_roll_out función (e: MouseEvent ): void {
/ / Roll-out
}

Alternativamente, puede utilizar la siguiente forma:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
( MouseEvent . CLICK , on_handler ) ; . mc addEventListener ( MouseEvent CLICK, on_handler.);
( MouseEvent . ROLL_OVER , on_handler ) ; . mc addEventListener ( MouseEvent ROLL_OVER, on_handler.);
( MouseEvent . ROLL_OUT , on_handler ) ; . mc addEventListener ( MouseEvent ROLL_OUT, on_handler.);
/ **
* Puedo crear una sola función para controlar todos los eventos
* /
e : MouseEvent ) : void { on_handler función (e: MouseEvent ): void {
e . type ) { switch (tipo and.) {
. CLICK : casas MouseEvent . CLICK:
/ / Haga clic en
break;
. ROLL_OVER : casas MouseEvent . ROLL_OVER:
/ / Pase el cursor sobre
break;
. ROLL_OUT : casas MouseEvent ROLL_OUT.:
/ / Roll-out
break;
}
}

9 comentarios: "Muy corto truco: addEventListener () AS3, un manejador de los eventos más"

  1. 11 de enero 2009 Los mejores posts de la semana # 9 | EmaWebDesign:: Programación Web / Web Design :

    [...] Truco muy corto: addEventListener () AS3, un manejador de los eventos más en ActionScript 3.0 debe utilizar el método addEventListener () para interceptar cualquier [...]

  2. 02 de diciembre 2009 Roberto:

    Hola, me encanta cómo ha mejorado, pero te pido algo, si yo tuviera más de un MovieClip mc, escriba: MC1, MC2 ... .. (podría ser por ejemplo los botones de un menú), la forma de manejar, gracias?

  3. 02 de diciembre 2009 Giovambattista Fazioli :

    @ Robert:

    si hubiera más de un MovieClip mc

    , in questo caso MouseEvent . En la función on_handler se puede hacer referencia al objeto del tipo Event , en este caso MouseEvent . Este objeto, de hecho, le permite tener información sobre el objeto que recibió el evento. Si usted intenta esto:

    1
    2
    3
    4
    e : MouseEvent ) : void { on_handler función (e: MouseEvent ): void {
    e . target . name ) ; trace (objetivo and. nombre.)
    / / ...
    }

    ) ti permetterà di sapere quale MovieClip hai selezionato. La propiedad target (o currentTarget ) le hará saber que ha seleccionado MovieClip.
    che, anche se a prima vista sembrano del tutto identici, in alcuni casi (vedi bottoni complessi costruiti con più MovieClip annidati) possono darti la corretta informazione che cerchi. Consulte la documentación está en los detalles de target que currentTarget que aunque a primera vista parecen ser bastante idénticos, en algunos casos (ver botones construido con clips de película anidados más complejos) puede darle la información correcta que busca.

  4. 02 de diciembre 2009 Roberto:

    @ Giovambattista Fazioli: Voy a ir a buscar ...:) ... bueno ... si vuelvo a enviar ..:)

  5. 02 de diciembre 2009 Roberto:

    @ Giovambattista Fazioli:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    ( MouseEvent . MOUSE_OVER , on_handler ) ; . btn1_mc addEventListener ( MouseEvent MOUSE_OVER, on_handler.);
    ( MouseEvent . MOUSE_OUT , on_handler ) ; . btn1_mc addEventListener ( MouseEvent MOUSE_OUT, on_handler.);

    e : MouseEvent ) { on_handler función (e: MouseEvent ) {
    e . type ) { switch (tipo and.) {
    . MOUSE_OVER : casas MouseEvent . MOUSE_OVER:
    e . currentTarget . name ) ; //funziona, visualizza "btn1_mc" ossia il nome dell'istanza del primo pulsante trace (currentTarget and.. nombre) / / funciona, se muestra "btn1_mc" o el nombre del primer botón
    ( 2 ) ; . btn1_mc gotoAndPlay (2);
    break;
    . MOUSE_OUT : casas MouseEvent MOUSE_OUT.:
    ( 16 ) ; . btn1_mc gotoAndPlay (16);
    break;
    }
    }

    Entonces

    1
    e . currentTarget . name ) trace (currentTarget and.. nombre)

    funciona, pero ¿cómo puedo conectar a la secuencia de la educación que viene? en lugar de

    1
    ( 2 ) ; . btn1_mc gotoAndPlay (2);
  6. 02 de diciembre 2009 Giovambattista Fazioli :

    @ Robert: Es muy simple: e.target es un puntero a la instancia del clip de película, entonces sólo tiene que utilizar:

    1
    . gotoAndPlay ( 2 ) ; .. y el objetivo gotoAndPlay (2);

    En la práctica btn1_mc , o cualquier otra instancia, corresponde a e.target

  7. 02 de diciembre 2009 Roberto:

    @ Giovambattista Fazioli: Bueno, qué decir, he tratado de ser bueno con el friki
    [Cc_actionscript3] (e.currentTarget.name). GotoAndPlay (2) [\ como] ... llevado ... Y así el nombre de los paréntesis, y la función ... así que ... .. GRACIAS ....:)

  8. 02 de diciembre 2009 Roberto:

    @ Robert: Me gustaría concluir, si alguien tratara de información acerca de que en el caso de metros cúbicos más (por ejemplo, botones), con una matriz y haga clic en un grupo y se puede asignar diferentes mc "addEventListener" es :

    1
    2
    3
    4
    5
    var i : int = 0 ; i < btn_array . length ; i ++ ) { for (var i: int . = 0, i <btn_array longitud; i + +) {
    . addEventListener ( MouseEvent . CLICK , on_handler ) ; btn_array [i] addEventListener (. MouseEvent CLICK, on_handler.);
    . addEventListener ( MouseEvent . MOUSE_OVER , on_handler ) ; btn_array [i] addEventListener (. MouseEvent MOUSE_OVER, on_handler.);
    . addEventListener ( MouseEvent . MOUSE_OUT , on_handler ) ; btn_array [i] addEventListener (. MouseEvent MOUSE_OUT, on_handler.);
    }

    Hola ... .. y espero que sea útil a alguien más ....:)

  9. 02 de diciembre 2009 Giovambattista Fazioli :

    @ Roberto: excelente! También, por último, si la serie de "botones" (MovieClip) se colocan en un recipiente de MovieClip, puede incluso evitar la matriz y el lazo sobre todos los "hijos" del contenedor. En este sentido le sugiero que lea todo lo que siempre quiso hacer con ActionScript 3
    Saludos y gracias por sus contribuciones

Deja un comentario

XHTML PERMISO TAG: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> código de inserción:
 <pre></pre> // blocco generico <code></code> // blocco generico [cc_actionscript][/cc_actionscript] // Actionscript [cc_actionscript3][/cc_actionscript3] // Actionscript 3 [cc_css][/cc_css] // CSS Style Sheet [cc_html][/cc_html] // HTML [cc_js][/cc_js] // Javascript [cc_objc][/cc_objc] // Objective-C [cc_php][/cc_objc] // PHP [cc_sql][/cc_sql] // SQL 


Dejar de SOPA