Flexでのカスタムイベント

1601 ワード

ステップ1:Eventクラスの定義

package myAS 
{ 
import flash.events.Event; 
public class LoginEvent extends Event 
{ 
  /**   */ 
  public var username:String; 
  /**   */ 
  public var password:String; 
  /**   */ 
  public static var LOGIN:String = "login"; 
   
  /**  ,*/ 
  public function LoginEvent(type:String, username:String, password:String) 
  { 
   super(type, bubbles, cancelable); 
   this.password = password; 
   this.username = username; 
  } 
   
  override public function clone():Event 
  { 
   return new LoginEvent(type,username,password); 
  } 
} 
} 

第2のステップでは、mxmlまたはASクラスで、このイベントをリスニングし、適切なタイミングでイベントを励起できることを宣言します.
mxmlで:

   [Event(name="login", type="myAS.LoginEvent")]

ASクラスでは、import文と一緒に書きます.
[Event(name="login", type="myAS.LoginEvent")]
励起イベント:
  var e:LoginEvent = new LoginEvent("login", username.text,password.text);
     this.dispatchEvent(e);
ステップ3では、プライマリアプリケーションにリスナーを登録し、トリガのメソッドを定義します.

  public function init():void 
    { 
     myPanel.addEventListener(LoginEvent.LOGIN, loginHandler); 
    } 
   
    public function loginHandler(event:LoginEvent):void 
    { 
     Alert.show("You logined with username is " + event.username + "password:" + event.password ); 
    }