Actionscript 3 您能在Flex3中的非UIComponent对象上创建自定义事件吗?
我有一个简单的对象,它从Google Maps API获取用户的地理编码数据,我希望它根据Google的响应发送一组自定义事件。但是,我没有这个类上的addEventListener()和dispatchEvent()方法,因为它不扩展UIComponent。有没有办法在Flex 3中创建自定义事件而不从UIComponent继承?扩展EventDispatcher类,或者从flash.events包实现IEventDispatcher接口。是的,这应该是可能的。像这样扩展EventDispatcher:Actionscript 3 您能在Flex3中的非UIComponent对象上创建自定义事件吗?,actionscript-3,apache-flex,flex3,Actionscript 3,Apache Flex,Flex3,我有一个简单的对象,它从Google Maps API获取用户的地理编码数据,我希望它根据Google的响应发送一组自定义事件。但是,我没有这个类上的addEventListener()和dispatchEvent()方法,因为它不扩展UIComponent。有没有办法在Flex 3中创建自定义事件而不从UIComponent继承?扩展EventDispatcher类,或者从flash.events包实现IEventDispatcher接口。是的,这应该是可能的。像这样扩展EventDispat
import flash.events.*;
public class MyDispatcher extends EventDispatcher {
private function doIt(event:Event):void {
dispatchEvent(new Event("myEvent"));
}
绝对是的。要利用事件处理,您的自定义对象应扩展EventDispatcher:
public class MyClass extends EventDispatcher
{
// ...
public function myFunction():void
{
dispatchEvent(new Event("myEvent"));
}
}
这负责调度事件
此外,如果需要,还可以创建一个扩展事件的单独类,该类提供附加事件特定数据以在处理程序中使用的选项(以及其他选项):
public class MyClass extends EventDispatcher
{
// ...
public function myFunction():void
{
dispatchEvent(new MyEvent(someData));
}
}
public class MyEvent extends Event
{
private var _myEventData:Object;
public function MyEvent(eventData:Object)
{
_myEventData = eventData;
}
}
。。因此,在处理程序中,您只需:
private function myHandler(event:MyEvent):void
{
trace(event.myEventData.toString());
}
有意义吗?我就是这么做的!扩展的EventDispatcher和继承的dispatchEvent 谢谢,小伙子们