Très court astuce: addEventListener () AS3, un gestionnaire d'événements plus

Dans ActionScript 3.0, vous devez utiliser addEventListener() pour intercepter tous les cas:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/ **
* Etant donné un mc MovieClip, vous définissez les événements et les gestionnaires
* /
( MouseEvent . CLICK , on_click ) ; . mc addEventListener ( MouseEvent CLIQUEZ, 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.);
/ **
* Fonctions droitier pour les événements ci-dessus
* /
e : MouseEvent ) : void { on_click function (e: MouseEvent ): void {
/ / Cliquez
}
e : MouseEvent ) : void { on_roll_over function (e: MouseEvent ): void {
/ / Roll over
}
e : MouseEvent ) : void { on_roll_out function (e: MouseEvent ): void {
/ / Roll-out
}

Sinon, vous pouvez utiliser le formulaire:

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 CLIQUEZ, 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.);
/ **
* Je crée une fonction unique pour gérer tous les événements
* /
e : MouseEvent ) : void { on_handler function (e: MouseEvent ): void {
e . type ) { switch (type et.) {
. CLICK : maisons MouseEvent . CLIQUEZ:
/ / Cliquez
break;
. ROLL_OVER : maisons MouseEvent . ROLL_OVER:
/ / Roll over
break;
. ROLL_OUT : maisons MouseEvent ROLL_OUT.:
/ / Roll-out
break;
}
}

9 commentaires: "truc très court: addEventListener () AS3, un gestionnaire d'événements plus"

  1. 11 janvier 2009 Les meilleurs messages de la semaine # 9 | EmaWebDesign:: Programmation Web / Web Design :

    [...] Truc très court: addEventListener () AS3, un gestionnaire d'événements plus dans ActionScript 3.0, vous devez utiliser la méthode addEventListener () pour intercepter tout [...]

  2. 2 décembre 2009 , Roberto:

    Bonjour, j'aime la façon dont vous avez amélioré, mais je vous demander quelque chose, si je n'avais plus d'un MovieClip mc, tapez: MC1, MC2 ... .. (peut être par exemple les boutons sur un menu), comment les gérer Merci?

  3. 2 décembre 2009 Giovambattista Fazioli :

    @ Robert:

    si je n'avais plus d'un MovieClip mc

    , in questo caso MouseEvent . Dans la fonction on_handler vous pouvez vous référer à l'objet du type Event , dans ce cas MouseEvent . Cet objet, en fait, vous permet d'avoir des informations sur l'objet qui a reçu l'événement. Si vous essayez ceci:

    1
    2
    3
    4
    e : MouseEvent ) : void { on_handler function (e: MouseEvent ): void {
    e . target . name ) ; trace (et. cibles nom.);
    / / ...
    }

    ) ti permetterà di sapere quale MovieClip hai selezionato. La propriété target (ou currentTarget ) vous permettra de savoir que vous avez sélectionné 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. Consultez la documentation est dans le détail de target que currentTarget que bien que, à première vue semblent être tout à fait identique, dans certains cas (voir les boutons construit avec plus complexes MovieClips imbriqués) peut vous donner les informations correctes que vous recherchez.

  4. 2 décembre 2009 , Roberto:

    @ Giovambattista Fazioli: Je vais aller chercher ...:) ... sympa ... si je resoumettre ..:)

  5. 2 décembre 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 function (e: MouseEvent ) {
    e . type ) { switch (type et.) {
    . MOUSE_OVER : maisons MouseEvent . MOUSE_OVER:
    e . currentTarget . name ) ; //funziona, visualizza "btn1_mc" ossia il nome dell'istanza del primo pulsante trace (et. currentTarget. nom) / / fonctionne, il affiche «btn1_mc" ou le nom du premier bouton
    ( 2 ) ; . btn1_mc gotoAndPlay (2);
    break;
    . MOUSE_OUT : maisons MouseEvent MOUSE_OUT.:
    ( 16 ) ; . btn1_mc gotoAndPlay (16);
    break;
    }
    }

    Puis

    1
    e . currentTarget . name ) trace (et. currentTarget. nom)

    fonctionne, mais comment puis-je joindre à la séquence d'enseignement prochaine? à la place de

    1
    ( 2 ) ; . btn1_mc gotoAndPlay (2);
  6. 2 décembre 2009 Giovambattista Fazioli :

    @ Robert: Il est très simple: e.target est un pointeur sur l'instance du MovieClip, alors utilisez simplement:

    1
    . gotoAndPlay ( 2 ) ; .. et la cible gotoAndPlay (2);

    En pratique btn1_mc , ou toute autre instance, correspond à e.target

  7. 2 décembre 2009 , Roberto:

    @ Giovambattista Fazioli: Eh bien quoi dire, j'ai essayé d'être bon avec Geek
    [Cc_actionscript3] (e.currentTarget.name). GotoAndPlay (2) [\ que] ... enlevé ... Et donc le nom de l'parenthèses, et la fonction ... alors ... .. MERCI ....:)

  8. 2 décembre 2009 , Roberto:

    @ Robert: Je voudrais conclure, si quelqu'un a essayé de d'info à ce sujet dans le cas avec plus de mètres cubes (boutons, par exemple), avec un tableau et un clic, vous pouvez affecter différents groupes et 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 longueur; i + +) {
    . addEventListener ( MouseEvent . CLICK , on_handler ) ; btn_array [i] addEventListener (. MouseEvent CLIQUEZ, 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.);
    }

    ... .. Bonjour et j'espère être utile à quelqu'un d'autre ....:)

  9. 2 décembre 2009 Giovambattista Fazioli :

    @ Roberto: excellent! Aussi, enfin, si la série des "boutons" (MovieClip) sont placés dans un conteneur de MovieClip, vous pouvez même éviter le tableau et on boucle sur toutes les "enfants" du conteneur. À cet égard, je vous suggère de lire Tout ce que vous avez toujours voulu faire avec Actionscript 3
    Salutations et merci pour vos contributions

Laisser un commentaire

XHTML TAG PERMIS: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> CODE D'INSERTION:
 <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 


Arrêtez SOPA