Creare eventi personalizzati in Actionscript 3.0 è semplicissimo. Usarli, poi, permette di utilizzare il metodo addEventListener() e rendere il nostro oggetto del tutto standard. Se abbiamo creato una classe, ad esempio Bottone, è corretto associare a questa uno o più eventi tramite una apposita classe (derivata dalla classe Event) BottoneEvent. Potremmo realizzare tutti gli eventi che interessano il funzionamento del nostro oggetto: il click, il mouse over, o un qualsiasi altro evento! Definendo anche delle nostre personali costanti. Lo scheletro – generico – di una classe evento personalizzata è:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | package { /* ** @name : BottoneEvent.as ** @description : Classe derivata da Event per gestire un proprio evento personalizzato ** @author : =undo= ** @web : http://www.undolog.com ** @email : g.fazioli@undolog.com */ import flash.events.*; public class BottoneEvent extends Event { public static const MIOEVENTO:String = 'pluto'; // codice qualsiasi, anche 'mioevento' in minuscolo public var Valore:Number = NaN; /* ** @name : BottoneEvent ** @description : constructor */ public function BottoneEvent ( type:String, v:Number, bubbles:Boolean=false, cancelable:Boolean=false ):void { super(type, bubbles, cancelable); this.Value = v; } /* ** @override */ override public function clone():Event { return new KnobEvent(this.type, this.Value, this.bubbles, this.cancelable); } } } |
Nella classe Bottone la situazione è ancora più semplice! Prendiamo ad esempio la porzione di codice che genera l’evento, all’interno della classe Bottone:
1 2 3 4 5 6 7 8 | /* ** @name : mioMetodo() */ public function mioMetodo():void { // succede qualcosa e dobbiamo generare un evento // passando anche un valore dispatchEvent( new BottoneEvent( BottoneEvent.MIOEVENTO, 1234 ) ); } |
Lato applicativo, ovviamente, useremo la nostra classe Bottone come tutte le altre:
1 2 3 4 5 6 7 8 9 10 | import Bottone; import BottoneEvent; // var foo:Bottone = new Bottone(); foo.addEventListener( BottoneEvent.MIOEVENTO, function( e:BottoneEvent ):void { // do! trace( e.type + ' / ' + e.Value ); // 'pluto / 1234' } ); |








7
Non ci sono commenti per questo Post
Lascia un commento