2010-05-26 71 views
1

我得到了一个在flash中设计的欧洲地图(1个movieclip,1个框架,非常简单),它包含直接在场景内的地图作为绘图对象,另外还有一些特定的国家可点击按钮。到目前为止,它工作正常。我现在需要的是让所有其他绘图对象可点击,而无需编辑和编写每个对象。我正在考虑这样的东西(伪代码):Actionscript 3:foreach在movieclip中绘制对象

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

我只是不知道如何实现这一点的语法。有人可以给我一个提示吗?

感谢, 马蒂亚斯

回答

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); 
    } 
} 
+0

遗憾的是它并没有选择普通的图形对象,而是将所有的相关领域为符号是几分钟的事做。非常感谢解决方案:) – maff 2010-05-26 11:22:22

+0

欢迎您。很高兴知道它为你工作。 – Shiki 2010-05-26 12:26:03