2012-02-21 3 views

ответ

2

Bubbling вызывает отправленное событие для продолжения отправки дерева отображения до тех пор, пока оно не достигнет стадии. Это полезно в различных сценариях.

Например: представьте, что у вас есть несколько кнопок внутри родительского объекта DisplayObject. Вы можете добавить слушателей к каждой кнопке и не забудьте удалить их потом или просто добавить одного слушателя к родительскому. Это работает, потому что MouseEvents активизируется.

buttonParent.addEventListener(MouseEvent.CLICK,handleButtonClick); 

function handleButtonClick(event:MouseEvent):void 
{ 
    trace("The button clicked was " + event.target.name); 
} 

Преимущество этого в том, что теперь вы можете добавлять и удалять кнопки свободно, не беспокоясь о присоединении слушателей к ним. Свойство объекта target объекта события будет ссылкой на кнопку, которая была нажата, а currentTarget будет ссылкой на родителя.

Отменяется - это флаг, который устанавливает, разрешено ли вам прекращать действие по умолчанию для события, вызвав метод preventDefault().

+1

Для объектов, которые никогда не добавляются в список отображения, например объектов данных, параметр bubbles ничего не делает. Обратите внимание, что приведенный выше код будет отслеживать имя кнопки _parent_, а не кнопку, поскольку currentTarget всегда указывает на объект, код которого был вызван кодом AddEventListener. Если вы хотите получить имя кнопки, вам нужно будет установить mouseChildren на false и запустите event.target. –

+0

@AmyBlankenship - Мне всегда кажется, что они ошибаются. – shanethehat

Смежные вопросы