2012-02-29 11 views
0

間違った質問をしているかもしれませんが、自分のクラスのメソッドで作成されたmovieClipsにevenListenersを追加しようとしています。クラスによって作成されたムービークリップにイベントリスナーを追加する

メインのタイムラインからの私のクラスのインスタンスを作成して、ステージにそのインスタンスを追加:

//MY CLASS 
var createSlide:AddItems = new AddItems(); 
var scrollClip:Sprite = new Sprite(); 
addChild(scrollClip); 

//ADDIMAGES CREATES 4 MOVIECLIPS 
createSlide.addImages(BG,image1,image2,image3,image4); 

//ADD TO STAGE 
scrollClip.addChild(createSlide); 

をSOどのように私はcreateSlideによって作成されたムービークリップにイベントリスナーを追加するには?

これ以上の情報が必要な場合、またはこれがわからない場合は、私に知らせてください。

答えて

0

内部で起こっていることを知らないと言うのは難しいです。AddItems

おそらくAddItemsSpriteに拡張され、新しく作成されたオブジェクトがそれ自身に追加されます。その場合は、getChildAt()を使用してアクセスできます。

var child1:DisplayObject = createSlide.getChildAt(0); 
var child2:DisplayObject = createSlide.getChildAt(1); 
var child3:DisplayObject = createSlide.getChildAt(2); 
var child4:DisplayObject = createSlide.getChildAt(3); 

child1.addEventListener(...); 
... 

AddItemsクラスのパブリックプロパティとして公開することもできます。

最後に、AddItemsクラス内のイベントをリッスンして、AddItemsのイベントとして再度ディスパッチすることができます。あなたはscrollClipで他のムービークリップがあり、唯一の方法である彼らにリスナーを追加したくない場合は

for each(var mc:MovieClip in scrollClip) 
    mc.addEventListener("myEvent", onMyEventHandler); 

1

私はそれが私を失敗したことがないので、このようにそれをやってお勧めしますあなたの追加された子に名前を追加してから、それらを繰り返し、私の例のようにリスナーを追加します。それはあなたが尋ねたものだ場合

0

わからない、これを試してみてください。

var totalChild = createSlide.numChildren-1; 

for(var i:int=0;i<totalChild;i++){ 
    var childd = createSlide.getChildAt(i); 
    childd.addEventListener("event type","func handler"); 
} 
.... 
//ADD TO STAGE 
scrollClip.addChild(createSlide); 
関連する問題