|
|
|||||
Регистрация: Mar 2013
Сообщений: 290
|
MovieClip: единый addEventListener
(Можно даже сказать: Единый Слушатель Событий Ада), лол.
Ок, всем привет. Есть мувиклип Area1, в котором находятся три других мувиклипа: Krug1, Krug2, Krug3. Все они залинкованы к одноименным классам через галочку Export to ActionScript. Изначально стэйдж пустой. Класс Main заполняет его вот так: Нужно, чтобы по клику мыши определялось какой кружок был нажат, и шло соответвующее действие. Конешно, это можно сделать повесив на каждый кружок свой слушатель, но так не интересно. Можно ли повесить только один слушатель на объект Area1, чтобы он, через родительские ссылки определял, какой кружок был нажат? Я попытался сделать так: Основной класс: package { import flash.display.Sprite; public class Main extends Sprite { private var area1:Area1; private var eventHandler:EventHandler; public function Main() { area1 = new Area1(); area1.x = 120; area1.y = 150; addChild(area1); eventHandler = new EventHandler(area1); } } } package { import flash.display.MovieClip; import flash.events.*; public class EventHandler extends EventDispatcher { public function EventHandler(mc:MovieClip) { mc.addEventListener(MouseEvent.CLICK, clickHandler); } private function clickHandler(e:Event) { // if (e.currentTarget. ???) // { // trace("Krug1"); // } // else if (e.currentTarget. ???) // { // trace("Krug2"); // } // else if (e.currentTarget. ???) // { // trace("Krug3"); // } } } } Но как это сделать? Вроде бы нужно как-то e.currentTarget. использовать, но не понимаю как именно. Некоторое соображение: Изначально, у объектов на стэйдж нет <Instance names>. Подозреваю что если бы они были, то было бы проще. Тогда наверное прокатило бы что-то вроде: Но хотелось бы решить задачу без привязки к <Imstance name>, если это возможно конешно. |
Часовой пояс GMT +4, время: 23:46. |
|
« Предыдущая тема | Следующая тема » |
Теги |
addeventlistener , movieclip , единый слушатель |
|
|