воскресенье, 17 августа 2008 г.

Распространение событий ActionScript 3.0

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


*/

Комментариев нет: