1.首先定义一个Event类,假设类名为PhotosEvent。
packagecom.exhdLib
{
import flash.events.Event;
//自己申明的时间继承于Event类
public class PhotosEvent extends Event
{
//这里是这个文件的核心,可以扩展多个事件,形成事件列表,即申明事件名称
//在事件后点就会出现在提示里,很方便。
public static const PAUSEMOVE:String = "PauseMove";
//这里前三个参数是继承于Event类,后面的myStr是自己定义的事件参数,可以定义多个参数
public function PhotosEvent(type:String,bubbles:Boolean=false, cancelable:Boolean=false, myStr:String=null)
{
if(myStr!=null) _myStr=myStr;
super(type, bubbles, cancelable);
}
private var _myStr:String;
//下面两个方法都是定义事件的属性
public function getmyStr():String
{
return _myStr;
}
Public function set myStr(myStr:String):void
{
_myStr=myStr;
}
}
}
//我们调用的事件,就是在PhotosEvent类里定义好的,清楚吧。
//注意前面要引用一下PhotosEvent类
dispatchEvent(new PhotosEvent(PhotosEvent.PAUSEMOVE));
3.最后“响应”,有两种方法:
一种是添加监听事件,在Main.mxml里添加如下代码
import com.exhdLib.PhotosEvent;
import flash.events.Event;
private function Init():void
{
Toolbar.addEventListener(PhotosEvent.PAUSEMOVE,PausePhoto);
}
private function PausePhoto(Event:PhotosEvent):void
{
//dosomthing
}
一种是在ToolBar组件里增加响应方法:
//注意红色的必须和PhotosEvent里的事件名称相同PauseMove
<mx:Metadata>
[Event(name="PauseMove", type="com.exhdLib.PhotosEvent")]
</mx:Metadata>
这样就可以在Main.mxml直接调用这个方法了
<ToolBar:BarContral id="Toolbar" PauseMove="doSomethingCode"
width="100%" height="20%"XML_URL="data/photo.xml"/>
两种方法效果一样,就看个人喜好了