Sehr kurze Trick: addEventListener () AS3 ein Handler mehr Veranstaltungen

In ActionScript 3.0 müssen Sie addEventListener() auf jeden Fall abzufangen:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/ **
* Bei einem MovieClip mc, setzen Sie Ereignisse und Handler
* /
( 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.);
/ **
* Funktionen hander für die oben genannten Ereignisse
* /
e : MouseEvent ) : void { on_click Funktion (e: MouseEvent ): void {
/ / Klicken Sie auf
}
e : MouseEvent ) : void { on_roll_over Funktion (e: MouseEvent ): void {
/ / Über Roll-
}
e : MouseEvent ) : void { on_roll_out Funktion (e: MouseEvent ): void {
/ / Roll-out
}

Alternativ können Sie das Formular:

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.);
/ **
* Erstelle ich eine einzelne Funktion, um alle Ereignisse zu verarbeiten
* /
e : MouseEvent ) : void { on_handler Funktion (e: MouseEvent ): void {
e . type ) { Schalter (and. type) {
. CLICK : Häuser MouseEvent . KLICK:
/ / Klicken Sie auf
break;
. ROLL_OVER : Häuser MouseEvent . ROLL_OVER:
/ / Über Roll-
break;
. ROLL_OUT : Häuser MouseEvent ROLL_OUT.:
/ / Roll-out
break;
}
}

9 Kommentare: "Sehr kurze Trick: addEventListener () AS3 ein Handler mehr Veranstaltungen"

  1. 11. Januar 2009 Die besten Beiträge der Woche # 9 | EmaWebDesign:: Web-Programmierung / Web Design :

    [...] Sehr kurze Trick: addEventListener () AS3 ein Handler mehr Veranstaltungen in Actionscript 3.0 Sie die addEventListener () verwenden, müssen für alle abzufangen [...]

  2. 2. Dezember 2009 Roberto:

    Hallo, ich mag wie du verbessert, aber ich dich etwas fragen, wenn ich mehr als ein MovieClip mc, Typ hatte: MC1, MC2 ... .. (zum Beispiel die Tasten in einem Menü werden konnten), wie man sie managen Dank?

  3. 2. Dezember 2009 Giovambattista Fazioli :

    @ Robert:

    wenn ich mehr als ein MovieClip mc

    , in questo caso MouseEvent . In der Funktion on_handler können Sie das Objekt vom Typ beziehen Event , in diesem Fall MouseEvent . Dieses Objekt in der Tat, können Sie Informationen über das Objekt, das die Veranstaltung erhalten haben. Wenn Sie dies versuchen:

    1
    2
    3
    4
    e : MouseEvent ) : void { on_handler Funktion (e: MouseEvent ): void {
    e . target . name ) ; trace (and. Ziel zu nennen.);
    / / ...
    }

    ) ti permetterà di sapere quale MovieClip hai selezionato. Das Anwesen target (oder currentTarget ) teilt Ihnen mit, dass Sie MovieClip ausgewählt.
    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. In der Dokumentation wird im Detail von target , dass currentTarget , dass, obwohl auf den ersten Blick zu sein scheinen ziemlich identisch, in einigen Fällen (siehe Buttons mit komplexeren verschachtelten MovieClips gebaut) kann Ihnen die richtigen Informationen, die Sie suchen.

  4. 2. Dezember 2009 Roberto:

    @ Giovambattista Fazioli: Ich gehe schauen ...:) ... nice ... wenn ich erneut ..:)

  5. 2. Dezember 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 Funktion (e: MouseEvent ) {
    e . type ) { Schalter (and. type) {
    . MOUSE_OVER : Häuser MouseEvent . MOUSE_OVER:
    e . currentTarget . name ) ; //funziona, visualizza "btn1_mc" ossia il nome dell'istanza del primo pulsante trace (and. currentTarget. name) / / funktioniert, zeigt es "btn1_mc" oder den Namen des ersten Button
    ( 2 ) ; . btn1_mc gotoAndPlay (2);
    break;
    . MOUSE_OUT : Häuser MouseEvent MOUSE_OUT.:
    ( 16 ) ; . btn1_mc gotoAndPlay (16);
    break;
    }
    }

    Dann

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

    funktioniert, aber wie kann ich auf Bildung nächste Sequenz anhängen? an Stelle von

    1
    ( 2 ) ; . btn1_mc gotoAndPlay (2);
  6. 2. Dezember 2009 Giovambattista Fazioli :

    @ Robert: Es ist sehr einfach: e.target ist ein Zeiger auf die Instanz der MovieClip, dann benutzen Sie einfach:

    1
    . gotoAndPlay ( 2 ) ; .. und Ziel gotoAndPlay (2);

    In der Praxis btn1_mc oder eine andere Instanz, entspricht e.target

  7. 2. Dezember 2009 Roberto:

    @ Giovambattista Fazioli: Naja was ich sagen soll, habe ich versucht, mit Aussenseiter gut
    [Cc_actionscript3] (e.currentTarget.name). GotoAndPlay (2) [\ as] ... weg ... Und so getroffen Namen der Klammern und Funktion ... so ... .. DANKE ....:)

  8. 2. Dezember 2009 Roberto:

    @ Robert: Ich würde zu schließen, wenn jemand versucht, Informationen über die in den Fall mit mehr Kubikmeter (zB Buttons), mit einem Array und einem Klick können Sie Gruppe, und weisen verschiedene 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 Länge; 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.);
    }

    ... .. Hallo und ich hoffe, nützlich zu sein, jemand anderes ....:)

  9. 2. Dezember 2009 Giovambattista Fazioli :

    @ Roberto: excellent! Auch wenn schließlich die Reihe der "Knöpfe" (MovieClip) in einem Container MovieClip platziert sind, können Sie sogar zu vermeiden das Array und Schleife über alle "Kinder" des Containers. In diesem Zusammenhang schlage ich vor, Sie lesen Alles, was Sie zu tun mit Actionscript 3
    Grüße und Dank für Ihre Beiträge

Hinterlasse einen Kommentar

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