我正在尝试从自定义 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;
}
}
}
在 项目渲染器 我有一个功能可以做到这一点:
private function sendEvent(o:Product):void
{
dispatchEvent(new CopyProductEvent(CopyProductEvent.COPY_PRODUCT,o));
}
在主应用程序中,我有一个 Spark 列表 我尝试将 EventListener 添加到应用程序和列表本身,但它们从未被调用...
this.addEventListener(CopyProductEvent.COPY_PRODUCT,
function(e:Product):void{
...
});
list.addEventListener(CopyProductEvent.COPY_PRODUCT,
function(e:Product):void{
...
});
为什么?!?我在哪里做错了?
函数中的事件已正确分派(dispatch)...我无法拦截它..
最佳答案
听起来你的事件没有冒泡。
添加 bubbles
自定义事件构造函数中的参数(默认为 false
):
public function CopyProductEvent(type:String, picked:Product, bubbles:Boolean = true)
{
super(type,bubbles);
this.picked = picked;
}
关于 AS3 中的事件冒泡的一个很好的解释可以在这里找到:
Event Bubbling in AS3
关于apache-flex - Itemrenderer 调度自定义事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9292227/