Creare eventi personalizzati in Actionscript 3.0

domenica 18 maggio, 2008

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 è:

Actionscript:
  1. package {
  2.     /*
  3.     ** @name            : BottoneEvent.as
  4.     ** @description     : Classe derivata da Event per gestire un proprio evento personalizzato
  5.     ** @author          : =undo=
  6.     ** @web             : http://www.undolog.com
  7.     ** @email           : g.fazioli@undolog.com
  8.     */    
  9.     import flash.events.*;
  10.  
  11.     public class BottoneEvent extends Event {
  12.        
  13.         public static const MIOEVENTO:String       = 'pluto'; // codice qualsiasi, anche 'mioevento' in minuscolo
  14.        
  15.         public var Valore:Number                   = NaN;        
  16.         /*
  17.         ** @name            : BottoneEvent
  18.         ** @description     : constructor
  19.         */
  20.         public function BottoneEvent ( type:String, v:Number, bubbles:Boolean=false, cancelable:Boolean=false ):void {
  21.             super(type, bubbles, cancelable);
  22.             this.Value = v;
  23.         }
  24.        
  25.         /*
  26.         ** @override
  27.         */
  28.         override public function clone():Event    {
  29.             return new KnobEvent(this.type, this.Value, this.bubbles, this.cancelable);
  30.         }
  31.     }
  32. }

Nella classe Bottone la situazione è ancora più semplice! Prendiamo ad esempio la porzione di codice che genera l'evento, all'interno della classe Bottone:

Actionscript:
  1. /*
  2. ** @name            : mioMetodo()
  3. */
  4. public function mioMetodo():void {
  5.     // succede qualcosa e dobbiamo generare un evento
  6.     // passando anche un valore
  7.     dispatchEvent( new BottoneEvent( BottoneEvent.MIOEVENTO, 1234 ) );
  8. }

Lato applicativo, ovviamente, useremo la nostra classe Bottone come tutte le altre:

Actionscript:
  1. import Bottone;
  2. import BottoneEvent;
  3. //
  4. var foo:Bottone = new Bottone();
  5. foo.addEventListener( BottoneEvent.MIOEVENTO,
  6.     function( e:BottoneEvent ):void {
  7.         // do!
  8.         trace( e.type + ' / ' + e.Value ); // 'pluto / 1234'
  9.     }
  10. );

Post correlati

Lascia un commento

TAG XHTML permessi: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Usa <pre> per racchiudere codice