![]() |
|
||||||||||
|
|||||
|
[+ 1,3 21,8,06]
|
Уже перелопатила несколько учебников и никак не могу понять, есть ли в АС возможность создать массив ссылок на объекты, например принадлежащие одному мувику? или массив кнопок (как в С++)?
Если нет, то как решается подобная проблема: есть достаточно большое количество однотипных объектов (например, кнопок), которые одинаково реагируют на одно и то же событие (например, движение мыши). Действия при наступлении события описываются в отдельной функции, а вот реакцию на это событие приходится описывать отдельно для каждого объекта. А если их сто?! Пробовала делать через листенера, но ведь он не может определить, какой конкретно объект из списка вызвал событие. Или может? Если может, то как получить на него ссылку. Заранее спасибо. |
|
|||||
|
Регистрация: Jun 2006
Сообщений: 1,061
|
создай свой класс
|
|
|||||
|
[+ 1,3 21,8,06]
|
Цитата:
|
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Zmet, используй EventDispatcher, там есть возможность определения объекта, отославшего событие.
|
|
|||||
|
[+ 1,3 21,8,06]
|
Цитата:
![]() |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Класс mx.events.EventDispatcher
http://livedocs.macromedia.com/flash.../00003473.html |
|
|||||
|
Регистрация: Jun 2006
Сообщений: 1,061
|
объект может передавать свое _name, так же можно просмотреть все объекты внутри клипа: (for var name in clip) { trace (name) ...}
я не совсем понял в чем собственно задача? (что неообходимо реализовать?) |
|
|||||
|
[+ 1,3 21,8,06]
|
Мерси
|
|
|||||
|
[+ 1,3 21,8,06]
|
Цитата:
Есть сто разных картинок. При нажатии на любую картинку ее прозрачность становится равной 50. Как описать эти действия для всех картинок сразу. Есть: Хочу: //событие наступает только для одного объекта, но описывается сразу для всех Последний раз редактировалось iNils; 21.08.2006 в 13:19. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
import mx.events.EventDispatcher;
EventDispatcher.initialize(container_mc);
for (var i in container_mc) {
var mc = MovieClip(container_mc[i]);
if (mc!=null) {
mc.onAnyEvent = function(event) {
this._alpha = 50;
trace(['Event receiver: '+this,'Event sender: '+event.target]);
}
container_mc.addEventListener("onAnyEvent",mc); // если используется EventDispatcher
}
}
container_mc.dispatchEvent({type:'onAnyEvent'});
Последний раз редактировалось etc; 16.08.2006 в 19:00. |
![]() |
![]() |
Часовой пояс GMT +4, время: 07:21. |
|
|
« Предыдущая тема | Следующая тема » |
|
|