Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   MouseEvent для кучи объектов (http://www.flasher.ru/forum/showthread.php?t=120504)

RaVeN-Nikma 22.01.2009 13:49

MouseEvent для кучи объектов
 
Доброе время суток.

Начал изучать AS3, так что пока я в нем полный ZERO.

Вопрос. Есть 100-400 динамически созданных объектов типа MovieClip. Нужно определить при нажатии мышки, на какой из этих объектов щелкнули. Можно ли это как-то реализовать быстрым алгоритмом, или нужно на каждый из объектов вешать addEventListener(MouseEvent.CLICK…) ?

mre 22.01.2009 14:02

Нужно слушать клик только для контейнера, в котором лежат клипы.
А в обработчике смотреть event.target.

etc 22.01.2009 14:02

Повесьте клик на контейнер с объектами. event.target вам всё расскажет.

RaVeN-Nikma 22.01.2009 16:33

Спасибо, помогло

Почему если указывать просто event.target.name, то выводится имя не “s1”, а имя MovieClip-а который лежит внутри “s1”, нужно обязательно указать parent, после target, только тогда выводит что нужно. Я ведь вешаю listener на container1, а не на “s1”. Не могу понять логику.

Код AS3:

var rocks:Array = new Array();
var container1:MovieClip = new MovieClip();
 
rocks[0]= new mc_kletka();
rocks[0].x=26;
rocks[0].y=13;       
rocks[0].name = "s1";
container1.addChild(rocks[0]);
addChild(container1);
 
container1.addEventListener(MouseEvent.CLICK, goBack);
 
function goBack(event:MouseEvent):void {
        trace(event.target.parent.name);
}


mre 22.01.2009 16:47

Код AS3:

(rocks[0] as Sprite).mouseChildren = false;


RaVeN-Nikma 22.01.2009 17:51

Гений! спасибо


Часовой пояс GMT +4, время: 03:19.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.