参照资料写个例子
事件
import flash.events.Event;
import flash.events.EventDispatcher;
import spark.components.*;
public class LoginEvent extends Event
{
public static const ET:String = "LoginEvent";
public static var viewnav:ViewNavigator=null;
public var data:Object;
public static const dis:EventDispatcher = new EventDispatcher();
public function LoginEvent(type:String,bubbles:Boolean = false,canceable:Boolean = false,data:Object = null)
{
super(type, bubbles, cancelable);
this.data=data;
}
}
分发
var loginEvent:LoginEvent =new LoginEvent(LoginEvent.ET,false,false,d);
//application.dispatchEvent(loginEvent);
LoginEvent.dis.dispatchEvent(loginEvent);
注册
LoginEvent.dis.addEventListener(LoginEvent.ET,login)
处理
public function login(e:LoginEvent):void
{
var d:String=e.data.toString();
if(d=="0"){
trace("push q");
busyIndicator.visible = false;
trace(this.parentApplication);
//trace(this.parentDocument.toString());
if(navigator == null){
trace(LoginEvent.viewnav);
LoginEvent.viewnav.pushView(MainView);
//navigator.parentNavigator
//this.parentApplication
}else
{
navigator.pushView(MainView);
LoginEvent.viewnav=navigator;
}
//model.status = -1;
trace("push h");
}
//dispatchEvent(loginEvent);
}