[AS3] Εισαγωγή στα Event Listeners

ActionScript και Flex Προγραμματισμός

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
Άβαταρ μέλους
HeRu
Flash Moderator
Δημοσιεύσεις: 800
Εγγραφή: 16 Αύγ 2004 10:49
Επικοινωνία:

[AS3] Εισαγωγή στα Event Listeners

Δημοσίευση από HeRu » 18 Ιούλ 2009 16:55

Τι είναι τα Events
Κατά την διάρκεια της εκτέλεσης του swf, συμβαίνουν διάφορα γεγονότα, όπως το πάτημα ενός κουμπιού, η αλλαγή frame σε ένα movieclip, το τέλος αναπαραγωγής ενός ήχου κλπ.
Η actionscript μας δίνει την δυνατότητα να ορίσουμε listeners για ένα event και να εκτελέσουμε κάποιες εντολές όταν αυτό το event συμβεί.

Πως ορίζεται ένας Event Listener
Η βασική μορφή για να ορίσουμε έναν listener είναι:

Κώδικας: Επιλογή όλων

Αντικείμενο.addEventListener( Event, Function );
Αντικείμενο: Είναι το αντικείμενο πάνω στο οποίο θέλουμε να ακούμε για το event π.χ. ένα movieclip, το stage, ένα button κλπ
Event: Το event για το οποίο θέλουμε ο listener να αντιδράσει.
Function: Μια function που θα εκτελεστεί όταν το event συμβεί.

Η function που θα εκτελεστεί όταν συμβεί το event, παίρνει αυτήν την μορφή:

Κώδικας: Επιλογή όλων

function όνομα(παράμετρος:Τύπος):void
{
     // κώδικας
}
παράμετρος:Τύπος: Όταν καλείται η listener function περνιέται σαν παράμετρος ένα event object με τον τύπο του event(π.χ. MouseEvent, FocusEvent κλπ) που περιεχέι πληροφορίες για το event που μπορούμε να χρησιμοποιήσουμε.
Σημείωση: Το όνομα της παραμέτρου το ορίζουμε εμείς. Συνήθως όμως χρησιμοποιούνται τα event, e, evt

Όταν θέλουμε να βγάλουμε έναν listener:

Κώδικας: Επιλογή όλων

Αντικειμενο.removeEventListener( Event, Function );
Πρέπει να έχουμε ακριβώς τις ίδιες παραμέτρους όπως όταν το προσθέσαμε, δηλαδή ίδιο event και function name.

Παραδείγματα
Ένα απλό click button που μας πάει σε ένα url

Κώδικας: Επιλογή όλων

//Έχουμε στο stage ένα button με instance name myButton

myButton.addEventListener(MouseEvent.CLICK, onMyButtonClick);

function onMyButtonClick(event:MouseEvent):void
{
     navigateToURL(new URLRequest("http://www.freestuff.gr"));
}
Κώδικας που εκτελείτε σε κάθε frame ενός movieclip

Κώδικας: Επιλογή όλων

//Έχουμε στο stage ένα movieclip με instance name myMc

myMc.addEventListener(Event.ENTER_FRAME, onMcEnterFrame);

function onMcEnterFrame(e:Event):void
{
     // το event περιέχει ένα target property που είναι το αντικείμενο 
     // στο οποίο συνέβη το event. θα μπορούσαμε να γράψουμε
     // myMc.rotation+= 4; 

     e.target.rotation+= 4; 
}
Αν θέλουμε να φτιάξουμε ένα custom mouse cursor

Κώδικας: Επιλογή όλων

// Έχουμε στο stage ένα movieclip που θα είναι ο cursor μας, με instance name myCursor.

stage.addEventListener(MouseEvent.MOUSE_MOVE,mouseMoved);
function mouseMoved(evt:MouseEvent):void
{
	myCursor.x = evt.stageX;
	myCursor.y = evt.stageY;
}
Mouse.hide();
Χρήσιμα links
Όλα τα events της actionscript 3:
http://livedocs.adobe.com/flash/9.0/Act ... etail.html

Απάντηση

Επιστροφή στο “ActionScript και Flex Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες