当前位置:  开发笔记 > 编程语言 > 正文

您可以在Flex 3中的非基于UIComponent的对象上创建自定义事件吗?

如何解决《您可以在Flex3中的非基于UIComponent的对象上创建自定义事件吗?》经验,为你挑选了1个好方法。

我有一个简单的对象,可以从Google Maps API获取地理编码数据,我希望它可以根据Google的响应发送一组自定义事件.但是,我没有在此类上使用addEventListener()和dispatchEvent()方法,因为它不会扩展UIComponent.有没有办法在Flex 3中创建自定义事件而不继承UIComponent?



1> Christian Nu..:

绝对没错.要利用事件处理,您的自定义对象应扩展EventDispatcher:

public class MyClass extends EventDispatcher
{
    // ...

    public function myFunction():void
    {
        dispatchEvent(new Event("myEvent"));
    }
}

这将负责调度事件.

然后,如果您有需要,您还可以创建一个扩展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;
    }
}

..那么在你的处理程序中,你只是:

private function myHandler(event:MyEvent):void
{
    trace(event.myEventData.toString());
}

合理?

推荐阅读
携手相约幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有