第一步:定义Event类
第二步,在mxml或AS类中,声明自己有这个事件可以被监听,并在适当时候激发事件:
在mxml中:
<mx:Metadata>
[Event(name="login", type="myAS.LoginEvent")]
</mx:Metadata>
在AS类中,与import语句写在一起:
[Event(name="login", type="myAS.LoginEvent")]
激发事件:
var e:LoginEvent = new LoginEvent("login", username.text,password.text);
this.dispatchEvent(e);
第三步,在他们的主Application上,注册监听器和定义触发的方法
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);
}
}
}
第二步,在mxml或AS类中,声明自己有这个事件可以被监听,并在适当时候激发事件:
在mxml中:
<mx:Metadata>
[Event(name="login", type="myAS.LoginEvent")]
</mx:Metadata>
在AS类中,与import语句写在一起:
[Event(name="login", type="myAS.LoginEvent")]
激发事件:
var e:LoginEvent = new LoginEvent("login", username.text,password.text);
this.dispatchEvent(e);
第三步,在他们的主Application上,注册监听器和定义触发的方法
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 );
}