Показать сообщение отдельно
Старый 11.10.2006, 13:05
MerlinTwi вне форума Посмотреть профиль Отправить личное сообщение для MerlinTwi Посетить домашнюю страницу MerlinTwi Найти все сообщения от MerlinTwi
  № 36  
Ответить с цитированием
MerlinTwi
 
Аватар для MerlinTwi

Регистрация: Oct 2003
Адрес: Москва
Сообщений: 328
По умолчанию 42. Распространение событий

ActionScript 3 поддерживает распространение события (event propagation) – передача одного события нескольким объектам. К примеру, в ActionScript 1 и 2 события для кнопок (такие как onPress, onRelease, …) перехваченные мувиклипом никогда не дойдут до вложенных в него мувиклипов, даже если мышкой кликнули именно по вложенному мувиклипу. Например, кликаем мышкой по мувиклипу child_mc, который вложен в parent_mc:
Код:
// AS1 и AS2
parent_mc.onPress = function(){
    trace("parent pressed");
}
parent_mc.child_mc.onPress = function(){
    trace("child pressed");
}

/* trace при клике мышкой по child_mc:
parent pressed
*/
А в ActionScript 3 событие будет передано обоим мувиклипам:
Код:
// AS3
parent_mc.addEventListener(MouseEvent.CLICK, parentClick);
parent_mc.child_mc.addEventListener(MouseEvent.CLICK, childClick);

function parentClick(event:MouseEvent):void {
    trace("parent pressed");
}
function childClick(event:MouseEvent):void {
    trace("child pressed");
}

/* trace при клике мышкой по child_mc:
child pressed
parent pressed
*/
__________________
Создатель: Бойцовский клуб | TimeZero | Sky2Fly
Я возьму сам.