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