Основы обработки событийFlash Player 9 и более поздних версий, Adobe AIR 1.0 и более поздних версий События можно представить в качестве любых явлений в SWF-файле, которые могут заинтересовать вас как программиста. Например, большинство SWF-файлов поддерживает тот или иной способ взаимодействия с пользователем (от простейших вещей вроде реакции на нажатие кнопки мыши до более сложных операций, таких как принятие и обработка данных, введенных в форму). Любое подобное взаимодействие пользователя с SWF-файлом рассматривается в качестве события. События могут происходить без прямого взаимодействия с пользователем (например, завершение загрузки данных с сервера или активация подключенной камеры). В ActionScript 3.0 каждое событие представлено объектом события, который является экземпляром класса Event или одного из его подклассов. Объект события не только хранит информацию о том или ином событии, но и содержит методы, облегчающие управление объектом события. Например, когда программа Flash Player или AIR регистрирует нажатие кнопки мыши, она создает объект события (экземпляр класса MouseEvent), который представляет определенное событие щелчка мыши. После создания объекта события Flash Player или AIR отправляет его. Это значит, что объект события передается объекту, который является целью события. Объект, выступающий в качестве назначения для отправленного объекта события, называется целью события. Например, когда становится активна прикрепленная камера, Flash Player отправляет объект события напрямую в цель события, которая в данном случае является объектом, представляющим камеру. Однако если цель события находится в списке отображения, объект события передается вниз по иерархии списка отображения до тех пор, пока не достигнет цели события. В некоторых случаях объект события затем «всплывает» обратно в иерархии списка отображения по тому же пути. Этот обход иерархии списка отображения называется потоком событий. «Прослушивать» объекты событий в своем коде можно с помощью прослушивателей событий. Прослушиватели событий — это функции или методы, которые записываются для реакции на определенные события. Чтобы обеспечить ответ программы на события, необходимо добавить прослушиватели событий к цели события либо к любому объекту списка отображения, который принадлежит потоку событий объекта события. Каждый раз при написании кода прослушивателя событий он следует этой основной структуре (элементы, выделенные полужирным шрифтом — это заместители, которые заполняются, исходя из требований вашего конкретного случая): function eventResponse(eventObject:EventType):void { // Actions performed in response to the event go here. } eventTarget.addEventListener(EventType.EVENT_NAME, eventResponse); Такой код выполняет две задачи. Во-первых, он определяет функцию. Таким образом указываются действия, которые будут выполняться в ответ на это событие. Во-вторых, он вызывает метод addEventListener() исходного объекта, по существу «подписывая» функцию на указанное событие. Таким образом, когда это событие происходит, выполняются действия функции. При фактическом появлении события цель события проверяет свой список, который состоит из всех функций и методов, зарегистрированных в качестве прослушивателей событий. Затем он по очереди вызывает их, передавая в качестве параметра объект. Чтобы создать собственный прослушиватель событий, необходимо изменить в этом коде 4 вещи. Сначала необходимо заменить имя функции именем, которое вы хотите использовать (это необходимо сделать дважды там, где в коде присутствует надпись eventResponse). Во-вторых, необходимо указать соответствующее имя класса объекта события, отправленного событием, прослушивание которого необходимо выполнить (EventType в данном коде). Кроме того, нужно указать подходящую константу для определенного события (EVENT_NAME в примере кода). В-третьих, следует вызвать метод addEventListener(), применив его к объекту, который отправит событие (eventTarget в этом коде). По желанию можно изменить имя переменной, использованной в качестве параметра функции (eventObject в данном коде). Важные понятия и терминыНиже приводится список важных терминов, встречающихся при написании программ обработки событий:
|
|