Actionscript 3:在movieclip中绘制foreach绘图对象

时间:2010-05-26 10:37:08

标签: flash actionscript-3 dynamic map click

我有一个用flash设计的欧洲地图(1个动画片段,1个帧,非常简单),它包含地图作为直接在场景内的绘图对象,另外还有一些特定国家作为可点击按钮。到目前为止它工作正常。我现在需要的是使所有其他绘图对象都可以点击,而无需编辑和编写每个对象。我正在考虑这样的事情(伪代码):

foreach(obj in MovieClip) {
    if(obj !typeof(Button)) {
        obj.addEventListener(MouseEvent.MOUSE_DOWN, genericClickListener);
    }
}

我只是不知道如何实现它的语法。有人能给我一个暗示吗?

谢谢, 的Mathias

1 个答案:

答案 0 :(得分:1)

试试这个:

function genericClickHandler(event:Event):void {
  trace('clicked');
}

// loop through all children
for (var i:int = 0; i < numChildren; i++) {
  var child:Object = getChildAt(i) as Object; 
  // check if display is not a button and check if it has a buttonMode property
  if (!(child is SimpleButton) && child.hasOwnProperty('buttonMode')) {
    child.buttonMode = true;
    child.addEventListener(MouseEvent.CLICK, genericClickHandler, false, 0, true);
  }
}