У меня есть сомнения в создании пользовательского события в flex.Почему мы используем «пузыри» в событиях flex
Почему мы используем 'type: String, bubbles: Boolean = false, cancelable: Boolean = false' этот параметр в событиях flex.
У меня есть сомнения в создании пользовательского события в flex.Почему мы используем «пузыри» в событиях flex
Почему мы используем 'type: String, bubbles: Boolean = false, cancelable: Boolean = false' этот параметр в событиях flex.
Bubbling вызывает отправленное событие для продолжения отправки дерева отображения до тех пор, пока оно не достигнет стадии. Это полезно в различных сценариях.
Например: представьте, что у вас есть несколько кнопок внутри родительского объекта DisplayObject. Вы можете добавить слушателей к каждой кнопке и не забудьте удалить их потом или просто добавить одного слушателя к родительскому. Это работает, потому что MouseEvents активизируется.
buttonParent.addEventListener(MouseEvent.CLICK,handleButtonClick);
function handleButtonClick(event:MouseEvent):void
{
trace("The button clicked was " + event.target.name);
}
Преимущество этого в том, что теперь вы можете добавлять и удалять кнопки свободно, не беспокоясь о присоединении слушателей к ним. Свойство объекта target
объекта события будет ссылкой на кнопку, которая была нажата, а currentTarget
будет ссылкой на родителя.
Отменяется - это флаг, который устанавливает, разрешено ли вам прекращать действие по умолчанию для события, вызвав метод preventDefault()
.
Для объектов, которые никогда не добавляются в список отображения, например объектов данных, параметр bubbles ничего не делает. Обратите внимание, что приведенный выше код будет отслеживать имя кнопки _parent_, а не кнопку, поскольку currentTarget всегда указывает на объект, код которого был вызван кодом AddEventListener. Если вы хотите получить имя кнопки, вам нужно будет установить mouseChildren на false и запустите event.target. –
@AmyBlankenship - Мне всегда кажется, что они ошибаются. – shanethehat