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
*/
Комментариев нет:
Отправить комментарий