最近在flex osgi的实现,以下是自己的部分翻译:
Potomac有两种事件分发机制:
1 使用标准的flash/flex的事件分发机制,PotomacDispatcher extends flash.events.EventDispatcher ,他提供dispatchEvent,addEventListener and removeEventListener。
Demon:
PotomacDispatcher.getInstance().dispatch("myEvent","string",100,"string2");
2 需要声明事件classses,分发事件时需要添加时间名称,以及一些参数数据。
Demon:
[Handles(event="myEvent",global="true")]
public function myListener(string1:String,int1:int,string2:String):void
{
...
}
[Handlers]是一个常用的扩展点,然而在potomac的典型应用中扮演一个很重要的角色,这个tag允许你接受事件而不需要使用addEventListener。
Handlers的属性:
Event:监听的事件的字符串标识
Source:可选,事件上的公共属性,如果没有特殊说明,potomac将监听事件,当方法被声明的时候。
Gloabl:可选,true:监听器被添加到potomacDispatcher,在potomacDispatcher分发全局事件的时 候出发。
Priority:可选,监听器的优先级。
[Handlers] 可以实现标准的事件分发(被IEventDispatcher分发的事件),添加[Handlers] tag在当前类指定的监听可以实现方法上的简单织入。
[Handlers] 可以使用potomacDispatcher事件全局事件分发,设置global=“true”,添加监听方法到potomacDispatcher。