加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

flex – Itemrenderer Dispatch自定义事件

发布时间:2020-12-15 01:48:31 所属栏目:百科 来源:网络整理
导读:我正在尝试从自定义ItemRenderer调度自定义事件 这是我的自定义事件 package events{ import customClass.Product; import flash.events.Event; public class CopyProductEvent extends Event { public static const COPY_PRODUCT:String = "COPY_PRODUCT";
我正在尝试从自定义ItemRenderer调度自定义事件

这是我的自定义事件

package events
{
    import customClass.Product;

    import flash.events.Event;

    public class CopyProductEvent extends Event
    {
        public static const COPY_PRODUCT:String = "COPY_PRODUCT";
        public var picked:Prodotti;

        public function CopyProductEvent(type:String,picked:Product)
        {
            super(type);
            this.picked = picked;
        }
    }
}

在itemRenderer中我有一个函数来做到这一点:

private function sendEvent(o:Product):void
        {
            dispatchEvent(new CopyProductEvent(CopyProductEvent.COPY_PRODUCT,o));
        }

在主应用程序中我有一个spark List,我试图将EventListener添加到应用程序和列表本身,但它们永远不会被调用…

this.addEventListener(CopyProductEvent.COPY_PRODUCT,function(e:Product):void{
            ...
    });

    list.addEventListener(CopyProductEvent.COPY_PRODUCT,function(e:Product):void{
            ...
    });

为什么?!?我哪里做错了?

函数中的事件正确发送…我无法拦截它..

解决方法

听起来你的事件并没有冒泡.

在Custom事件构造函数中添加bubbles参数(默认情况下为false):

public function CopyProductEvent(type:String,picked:Product,bubbles:Boolean = true)
        {
            super(type,bubbles);
            this.picked = picked;
        }

关于AS3中事件冒泡的一个很好的解释可以在这里找到:
Event Bubbling in AS3

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读