在网上查了一会,用常用的自定义事件的方式,有时候进行传参、监听和发送貌似不成功。所自己找了一些资料,自己写了一个自定义的事件,直接使用自身的DispatchEvent和监听addeventlistener 个人感觉方便多。在这里显丑了。
package Event
{
import flash.events.Event;
import mx.controls.Button;
public class PublicEvent extends Event
{
private var _data:Object;
public static const PUBLIC:String="public";
private static var _cancelable:Boolean = false;
private static var submit:Button=new Button();
public function PublicEvent(type:String, data:Object=null, cancelable:Boolean=false)
{
//TODO: implement function
super(type);
_data = data;
_cancelable = cancelable;
}
public override function clone():Event{
return new PublicEvent(this.type,this.data,this.cancelable);
}
public function get data():Object
{
return _data;
}
public function set data(value:Object):void
{
_data = value;
}
public static function get cancelable():Boolean
{
return _cancelable;
}
public static function set cancelable(value:Boolean):void
{
_cancelable = value;
}
public static function dispatch(type:String,data:Object=null,cancelable:Boolean=false):Boolean{
return submit.dispatchEvent(new PublicEvent(type,data,cancelable));
}
public static function addListener(type:String,listener:Function,useCapture:Boolean=false,priority:int=0,useWeakReference:Boolean=false):void{
submit.addEventListener(type,listener,useCapture,priority,useWeakReference);
}
}
}
这不管是组件之间,还是组件与模块、主程序之间都可以进行通信与传参。