JC *_*bbs 2 apache-flex flex3 actionscript-3
我有一个简单的对象,可以从Google Maps API获取地理编码数据,我希望它可以根据Google的响应发送一组自定义事件.但是,我没有在此类上使用addEventListener()和dispatchEvent()方法,因为它不会扩展UIComponent.有没有办法在Flex 3中创建自定义事件而不继承UIComponent?
绝对没错.要利用事件处理,您的自定义对象应扩展EventDispatcher:
public class MyClass extends EventDispatcher
{
// ...
public function myFunction():void
{
dispatchEvent(new Event("myEvent"));
}
}
Run Code Online (Sandbox Code Playgroud)
这将负责调度事件.
然后,如果您有需要,您还可以创建一个扩展Event的单独类,它为您提供附加事件特定数据以供在处理程序中使用的选项(以及其他内容):
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;
}
}
Run Code Online (Sandbox Code Playgroud)
..那么在你的处理程序中,你只是:
private function myHandler(event:MyEvent):void
{
trace(event.myEventData.toString());
}
Run Code Online (Sandbox Code Playgroud)
合理?