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を持っています...箱舟一覧と私は、アプリケーションと、リスト自体に両方のEventListenerを追加しようとしましたが、彼らは呼ばれることはありません
this.addEventListener(CopyProductEvent.COPY_PRODUCT,
function(e:Product):void{
...
});
list.addEventListener(CopyProductEvent.COPY_PRODUCT,
function(e:Product):void{
...
});
なぜ?!?どこが間違っていますか?
機能からのイベントが正しく送出された...私はそれを傍受することはできません...あなたのイベントがバブリングされていないよう
はそれをありがとう仕事をしていました...私はあなたのソリューションを待っていましたが、itemrendererから、私が所有者からディスパッチしたイベントを処理したときに別のもの(洗練されていないもの)を見つけました: 'owner.dispatchEvent ...'あなたの解決策は良い方法です... – Marcx
はい、その解決策も機能します。ただし、itemRendererが所有者と緊密に結合されているため、レンダラーを再利用したい場合は、同じコンポーネント構造を使用する必要があります。イベントをバブルさせると、簡単に再利用できます。 – James
ええ、私はそれを持っている...私はバブルの事を知らなかった:) – Marcx