Actionscript 3: рисовать объект foreach в мувиклипе - PullRequest
1 голос
/ 26 мая 2010

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

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

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

Спасибо, Mathias

1 Ответ

1 голос
/ 26 мая 2010

Попробуйте это:

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);
  }
}
...