2010-05-26 7 views
1

Я получил карту европы, разработанную во flash (1 мувиклип, 1 кадр, очень простая), которая содержит карту как объекты для рисования непосредственно внутри сцены и, кроме того, некоторые конкретные страны в качестве кнопок с кнопками , Пока все работает нормально. Теперь мне нужно сделать все остальные объекты чертежа доступными без необходимости редактировать и создавать скрипты для каждого объекта. Я думаю о чем-то вроде этого (псевдокод):Actionscript 3: чертежный объект foreach в movieclip

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

Я просто не знаю, с синтаксисом, как достичь этого. Может ли кто-нибудь дать мне подсказку?

Спасибо, Mathias

ответ

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

+0

Ваш прием. Приятно было знать, что это сработало для вас. – Shiki

Смежные вопросы