4
我试图从一个自定义的调度自定义事件的ItemRenderer的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));
}
而在主应用程序中,我有一个sp方舟列表,我尝试添加一个事件监听既应用和列表本身,但他们从来没有被称为...
this.addEventListener(CopyProductEvent.COPY_PRODUCT,
function(e:Product):void{
...
});
list.addEventListener(CopyProductEvent.COPY_PRODUCT,
function(e:Product):void{
...
});
为什么?!?我在哪里做错了?
从该函数的事件被正确调度......我无法拦截它..
谢谢你,工作......与此同时,我正在等待你的解决方案,我发现另一个(不太精炼),从itemrenderer,当我把它从所有者派出它的事件,所以:'owner.dispatchEvent ...',它的工作太.. ..,顺便说一句你的解决方案更好... – Marcx 2012-02-15 13:08:48
是的,该解决方案也可以。然而,它的缺点是你的itemRenderer然后与它的所有者紧密耦合,所以如果你想重新使用渲染器,你将不得不依赖于相同的组件结构。允许事件冒泡允许轻松重用。 – James 2012-02-15 14:49:37
是的我知道了......我不知道泡沫的东西:) – Marcx 2012-02-15 14:59:33