将eventlistener添加到由类创建的movieClip中

时间:2012-02-29 20:32:00

标签: actionscript-3 flash class movieclip

我可能会问错误的问题,但我正在尝试将evenListeners添加到由我的一个类中的方法创建的movieClip中。

从主时间轴创建我的类的实例,然后将该实例添加到舞台。:

//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); 

那么如何将事件监听器添加到createSlide创建的movieClip中?

如果您需要更多信息或者目前尚不清楚,请告诉我。

3 个答案:

答案 0 :(得分:1)

我建议这样做,因为它从未让我失望过:

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

如果您在scrollClip中有其他影片剪辑,并且您不想向其添加侦听器,那么只能为添加的子项添加名称,然后迭代它们并添加听众,就像我的示例一样。

答案 1 :(得分:0)

如果不知道AddItems内部发生了什么,很难说。

大概AddItems扩展Sprite并将新创建的对象添加到自身。在这种情况下,您应该可以使用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自己的事件再次发送。

答案 2 :(得分: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);