Справочник по ActionScript® 3.0 для платформы Adobe® Flash®
Домашняя страница  |  Скрыть список пакетов и классов |  Пакеты  |  Классы  |  Что нового  |  Указатель  |  Приложения  |  Почему по-английски?
Фильтры: Получение данных с сервера...
Получение данных с сервера...
flash.events 

EventDispatcher  - AS3

Пакетflash.events
Классpublic class EventDispatcher
НаследованиеEventDispatcher Inheritance Object
Реализует IEventDispatcher
Подклассы AbstractEntityMetadata, AbstractInvoker, AbstractServiceWrapper, Accelerometer, AdvancedStyleClient, AnimatorBase, ApplicationUpdater, ApplicationUpdaterUI, ArrayList, AssetHandlerRegistry, AssetHandlerRegistry, AssetManager, AssetManager, AssetModel, AsyncToken, AudioDeviceManager, AuditManager, AutomationManager, AxisBase, AXMToolPopUpDropDownController, BaseAssetHandler, BaseFilter, BaseListData, BaseModuleInstance, BitmapFill, CacheDataDescriptor, CallResponder, Camera, CameraRoll, CameraUI, CategoryHandler, CategoryManager, CategoryModel, CCRDefaultActionHandler, Channel, ChannelSet, ChartItem, ConditionAssignmentModel, ConditionHandler, ConstraintColumn, ConstraintRow, ContainerLayoutAssignmentModel, ContentCache, ContentRequest, ContentSearchManager, Context3D, CSSStyleDeclaration, DataDictionaryHandler, DataDictionaryInstance, DataDictionaryInstanceModel, DataDictionaryManager, DataElementModel, DatagramSocket, DataProvider, DataServiceWrapper, DataStore, DataTransform, DDIModelVariableResolver, DEPDictionaryModel, DesignLayer, DeviceRotation, DisplayLayer, DisplayObject, DNSResolver, DRMManager, DropDownController, EditorConfigurationManager, Effect, EffectInstance, EffectManager, ExpressionEvaluationService, ExtensionContext, ExtensionsConfigManager, FieldAssignmentModel, FieldInstance, File, FileReference, FileReferenceList, FileStream, FileUploadManager, FlexClient, FlexNativeMenu, FlexNativeMenuAutomationImpl, FocusManager, FormConnector, FragmentLayoutHandler, FrameLabel, GameInput, GameInputControl, Geolocation, GradientBase, GradientEntry, GraphicElement, GridColumn, HierarchicalCollectionView, HierarchicalCollectionViewCursor, HierarchicalData, Icon, IKManager, IKMover, ImageHandler, IME, ImportExportManager, InteractionStateDetector, InvokeParams, LayoutHandler, LayoutManager, LayoutRendererBase, LeafNode, LetterHandler, LetterInstance, ListAssignmentModel, ListHandler, LoaderBase, LoaderInfo, LocalConnection, Locale, LocalizeableMessage, LogLogger, MediaElement, MediaFactory, MediaPromise, MediaTraitBase, MessageAgent, MessageBatch, MessageChannel, Metadata, Microphone, MockServiceProvider, Model, Model, ModuleAssignmentModel, ModuleBase, NativeApplication, NativeMenu, NativeMenuItem, NativeProcess, NativeWindow, NetConnection, NetConnectionFactoryBase, NetGroup, NetMonitor, NetStream, NetStreamMetricsBase, NetStreamPlayOptions, NetStreamSwitcher, NetStreamSwitchManagerBase, NetworkInfo, PanelManager, PermissionBasedAssetHandler, PermissionBasedAssetHandler, PresentationModel, PrintJob, ProcessManager, Project, ProLoaderInfo, RadioButtonGroup, RadioButtonGroup, RadioButtonGroup, RemoteNotifier, RSLInfo, RSLPreloader, Screen, SearchManager, SecurityManager, ServerSocket, Service, ServiceMonitor, ServiceTracker, ShaderJob, SharedObject, SimpleFunctionMapper, SimpleVariableResolver, Socket, SolidColor, SolidColorStroke, Sort, SortField, Sound, SoundChannel, SQLConnection, SQLStatement, Stage3D, StageText, StageVideo, StageWebView, State, StorageVolumeInfo, StreamingConnectionHandler, StyleSheet, SWFBridgeGroup, SwfConnector, SystemUpdater, TargetAreaAssignmentModel, TargetInstance, Task, TextContainerManager, TextHandler, TextureBase, Timer, ToolTipManager, TraitEventDispatcher, TransformOffsets, Transition, TransitionManager, Tween, Tween, UIComponentAutomationImpl, UIMovieClipAutomationImpl, UncaughtErrorEvents, URLFilePromise, URLLoader, URLStream, Validator, VariableAssignmentModel, VariableInstance, VariableModel, ViewTransitionBase, Worker, XFADataStream, XMLDataLoader, XMLSignatureValidator, XMLSocket

Язык версии: ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9, Flash Lite 4

Класс EventDispatcher является базовым классом для всех классов, отправляющих события. Класс EventDispatcher реализует интерфейс IEventDispatcher и является базовым классом для класса DisplayObject. Класс EventDispatcher позволяет любому объекту в списке отображения стать целью события и в этом качестве использовать методы интерфейса IEventDispatcher.

Цели событий являются важным компонентом модели событий во Flash® Player и Adobe® AIR® Цель события является основным фактором, определяющим прохождение потока событий по иерархии списка отображения. Когда происходит такое событие, как щелчок мыши или нажатие клавиши, Flash Player или приложение AIR отправляет объект Event в поток событий из корня списка отображения. Тогда объект события проходит путь через список отображения, пока не достигнет цели события, после чего он возвращается в начало пути. Путь к цели события и обратно разделен на три фазы: фаза захвата проходит от корня к последнему узлу перед целевым узлом события; фаза цели включает только целевой узел события; а фаза восходящей цепочки включает все последующие узлы на пути обратно к корневому узлу списка отображения.

Как правило, чтобы дать определенному пользователем классу возможность отправлять события, проще всего расширить класс EventDispatcher. Если это невозможно (например, если класс уже расширяет другой класс), можно внедрить интерфейс IEventDispatcher, создайте элемент EventDispatcher и создайте простые процедуры для направления вызовов в собранный EventDispatcher.

Посмотреть примеры



Общедоступные свойства
 СвойствоОпределено
 Inheritedconstructor : Object
Ссылка на объект класса или функцию конструктора для данного экземпляра объекта.
Object
Общедоступные методы
 МетодОпределено
  
Агрегирует экземпляр класса EventDispatcher.
EventDispatcher
  
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Регистрирует объект прослушивателя события на объекте EventDispatcher для получения прослушивателем уведомления о событии.
EventDispatcher
  
Посылает событие в поток событий.
EventDispatcher
  
Проверяет, имеет ли объект EventDispatcher прослушиватели, зарегистрированные для определенного типа события.
EventDispatcher
 Inherited
Показывает, определено ли заданное свойство для объекта.
Object
 Inherited
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра.
Object
 Inherited
Показывает наличие заданного свойства и его перечисляемость.
Object
  
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
Удаляет прослушиватель из объекта EventDispatcher.
EventDispatcher
 Inherited
Задает доступность динамического свойства для операций цикла.
Object
 Inherited
Возвращает строковое представление этого объекта, отформатированного в соответствии со стандартами, принятыми для данной локали.
Object
 Inherited
Возвращает строковое представление заданного объекта.
Object
 Inherited
Возвращает элементарное значение заданного объекта.
Object
  
Проверяет, зарегистрирован ли прослушиватель события для указанного типа события с данным объектом EventDispatcher или любым его предшественником.
EventDispatcher
События
 Событие Сводка Определено
  [многоадресное событие] Отправляется, когда проигрыватель Flash Player или приложение AIR перемещается в фокус операционной системы и становится активным.EventDispatcher
  [многоадресное событие] Отправляется, когда проигрыватель Flash Player или приложение AIR теряет фокус системы и становится неактивным.EventDispatcher
Сведения о конструкторе

EventDispatcher

()Конструктор
public function EventDispatcher(target:IEventDispatcher = null)

Язык версии: ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9, Flash Lite 4

Агрегирует экземпляр класса EventDispatcher.

Класс EventDispatcher обычно используется в качестве базового класса: большинству разработчиков не требуется эта функция конструктора. Однако более опытным разработчикам, внедряющим интерфейс IEventDispatcher, использовать этот конструктор необходимо. Если не удается расширить класс EventDispatcher и вместо этого приходится внедрять интерфейс IEventDispatcher, используйте этот конструктор, чтобы агрегировать экземпляр класса EventDispatcher.

Параметры
target:IEventDispatcher (default = null) — Целевой объект для событий, отправляемых объекту EventDispatcher. Этот параметр используется, когда экземпляр EventDispatcher агрегируется классом, внедряющим IEventDispatcher; это необходимо, чтобы содержащий его объект мог быть целью для событий. Не используйте этот параметр в простых случаях, когда класс расширяет EventDispatcher.
Сведения о методе

addEventListener

()метод
public function addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void

Язык версии: ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9, Flash Lite 4

Регистрирует объект прослушивателя события на объекте EventDispatcher для получения прослушивателем уведомления о событии. Можно регистрировать прослушиватели событий в любом узле из списка отображения для каждого типа события, фазы и приоритета.

После успешной регистрации прослушивателя событий невозможно изменить его приоритет путем дополнительных вызовов addEventListener(). Чтобы изменить приоритет прослушивателя, необходимо сначала вызвать метод removeListener(). Затем можно снова зарегистрировать прослушиватель с новым приоритетом.

Следует учесть, что после регистрации прослушивателя последующие вызовы метода addEventListener() с другим значением свойства type или useCapture приводят к регистрации другого прослушивателя. Например, прослушиватель, изначально зарегистрированный со значением useCapture, равным true, прослушивает только во время фазы захвата. Если вызвать метод addEventListener() еще раз с тем же объектом прослушивателя, но со свойством useCapture в значении false, то будет два прослушивателя: один — прослушивающий в фазе захвата, а другой — в целевой фазе и фазе восходящей цепочки.

Невозможно зарегистрировать прослушиватель события только для целевой фазы или для фазы восходящей цепочки. Эти фазы соединены при регистрации, поскольку восходящая цепочка применяется только к предшественникам целевого узла.

Если прослушиватель событий больше не нужен, его можно удалить, вызвав метод removeEventListener(), иначе могут возникнуть проблемы с памятью. Прослушиватели событий не удаляются из памяти автоматически, так как сборщик мусора не удаляет прослушиватель, пока существует объект, отправляющий соответствующее событие (если параметру useWeakReference не задано значение true).

Копирование экземпляра EventDispatcher не приводит к копированию прослушивателей событий, присоединенных к нему. (Если для вновь создаваемого узла требуется прослушиватель событий, его необходимо присоединить после создания узла.) При этом при перемещении экземпляра EventDispatcher присоединенные к нему прослушиватели событий перемещаются вместе с ним.

Если прослушиватель регистрируется для узла в тот момент, когда на нем обрабатывается событие, то в текущей фазе он не запускается, однако может запуститься в следующей фазе потока события, например в фазе восходящей цепочки.

Прослушиватель событий, удаленный из узла во время обработки события на этом узле, будет запускаться текущими операциями. После удаления прослушиватель событий больше не вызывается (если не будет снова зарегистрирован для дальнейшей обработки).

Параметры

type:String — Тип события.
 
listener:Function — Функция прослушивателя, обрабатывающая событие. Эта функция должна принимать объект Event в качестве единственного параметра и не должна что-либо возвращать , как показано в примере:
function(evt:Event):void

Эта функция может иметь любое имя.

 
useCapture:Boolean (default = false)Определяет, работает ли прослушиватель в фазе захвата или в целевой фазе и в фазе восходящей цепочки. Если значение useCapture равно true, прослушиватель обрабатывает событие только во время фазы захвата, но не во время целевой фазы или фазы восходящей цепочки. Если значение useCapture равно false, то прослушиватель обрабатывает событие только в целевой фазе или фазе восходящей цепочки. Чтобы прослушивать событие во всех трех фазах, необходимо вызвать addEventListener() дважды: один раз с useCapture в значении true, а другой — с useCapture в значении false.
 
priority:int (default = 0) — Уровень приоритета прослушивателя событий. Приоритет определяется 32-разрядным целым числом со знаком. Чем больше число, тем выше приоритет. Все прослушиватели событий с приоритетом n обрабатываются перед прослушивателями с приоритетом n-1. Прослушиватели с одинаковым приоритетом обрабатываются в порядке их добавления. Значение приоритета по умолчанию равно 0.
 
useWeakReference:Boolean (default = false) — Определяет, является ли ссылка на прослушиватель «сильной» или «слабой». «Сильная» ссылка (по умолчанию) предотвращает удаление прослушивателя сборщиком мусора. «Слабая» ссылка позволяет удалить прослушиватель.

Функции элементов уровня класса не подлежат удалению в качестве мусора, вследствие чего можно установить useWeakReference равным true для функций элементов уровня класса, не подвергая их возможности подобного удаления. Если свойству useWeakReference присвоить значение true для прослушивателя, который является вложенной внутренней функцией, то функция будет очищена и перестанет быть постоянной. При создании ссылок на внутреннюю функцию (возможно сохранение в другой переменной) она не будет собираться в качестве мусора и останется устойчивой.


Выдает
ArgumentError — Заданный объект listener не является функцией.

dispatchEvent

()метод 
public function dispatchEvent(event:Event):Boolean

Язык версии: ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9, Flash Lite 4

Посылает событие в поток событий. Целью события является объект EventDispatcher, для которого вызывается метод dispatchEvent().

Параметры

event:Event — Объект события, передаваемый в поток событий. Если осуществляется повторная отправка события, автоматически создается его клон. После отправки события нельзя изменить его свойство target, поэтому необходимо создать новую копию события, чтобы обеспечить правильное выполнение повторной отправки.

Возвращает
Boolean — Значение true в случае успешной передачи события. Значение false указывает на ошибку или на то, что для события был вызван метод preventDefault().

Выдает
Error — Достигнут предел рекурсии отправки события.

hasEventListener

()метод 
public function hasEventListener(type:String):Boolean

Язык версии: ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9, Flash Lite 4

Проверяет, имеет ли объект EventDispatcher прослушиватели, зарегистрированные для определенного типа события. Это позволяет определить, где объект EventDispatcher изменил обработку типа события в иерархии потока событий. Чтобы определить, запускает ли на самом деле определенный тип событий прослушиватель, используйте метод willTrigger().

Различие между hasEventListener() и willTrigger() заключается в том, что hasEventListener() анализирует только объект, к которому он принадлежит, тогда как willTrigger() — весь поток событий для события, указанного параметром type.

Когда метод hasEventListener() вызывается из объекта LoaderInfo, учитываются только те прослушиватели, к которым есть доступ у вызывающего объекта.

Параметры

type:String — Тип события.

Возвращает
Boolean — Значение true, если прослушиватель указанного типа зарегистрирован; в противном случае – false.

Связанные элементы API

removeEventListener

()метод 
public function removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void

Язык версии: ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9, Flash Lite 4

Удаляет прослушиватель из объекта EventDispatcher. При отсутствии прослушивателя, зарегистрированного с объектом EventDispatcher, вызов этого метода не оказывает эффекта.

Параметры

type:String — Тип события.
 
listener:Function — Удаляемый объект прослушивателя.
 
useCapture:Boolean (default = false)Указывает, был ли прослушиватель зарегистрирован для фазы захвата или целевой фазы и фазы восходящей цепочки. Если прослушиватель зарегистрирован и для фазы захвата, и для фаз цели и восходящей цепочки, метод removeEventListener() необходимо вызвать дважды: один раз с useCapture() в значении true, а другой раз с useCapture() в значении false.

willTrigger

()метод 
public function willTrigger(type:String):Boolean

Язык версии: ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9, Flash Lite 4

Проверяет, зарегистрирован ли прослушиватель события для указанного типа события с данным объектом EventDispatcher или любым его предшественником. Этот метод возвращает значение true, если прослушиватель события запускается в течение любой фазы потока событий, когда событие указанного типа передается объекту EventDispatcher или любому из его нижестоящих элементов.

Разница между методами hasEventListener() и willTrigger() заключается в том, что hasEventListener() просматривает только тот объект, которому он принадлежит, а willTrigger() просматривает весь поток событий для события, указанного в параметре type.

Когда метод willTrigger() вызывается из объекта LoaderInfo, учитываются только те прослушиватели, к которым есть доступ у вызывающего объекта.

Параметры

type:String — Тип события.

Возвращает
Boolean — Значение равно true при запуске прослушивателя указанного типа; в противном случае значение равно false.
Сведения о событии

activate

Событие
Тип объекта события: flash.events.Event
свойство Event.type = flash.events.Event.ACTIVATE

Язык версии: ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9, Flash Lite 4

[многоадресное событие] Отправляется, когда проигрыватель Flash Player или приложение AIR перемещается в фокус операционной системы и становится активным. Это многоадресное событие, которое отправляется всеми объектами EventDispatcher, для которых зарегистрированы прослушиватели данного события. Дополнительную информацию о многоадресных событиях см. в описании класса DisplayObject.

Константа ACTIVATE определяет значение свойства type объекта события activate.

Примечание. Это событие не имеет фазы захвата и фазы восходящей цепочки, поэтому отправляется непосредственно целевому элементу независимо от того, находится он в списке отображения или нет.

На устройствах AIR for TV это событие никогда не отправляется автоматически. Однако его можно отправить вручную.

Это событие имеет следующие свойства:

СвойствоЗначение
bubblesfalse
cancelablefalse; поведение по умолчанию, подлежащее отмене, не определено.
currentTargetОбъект, активно обрабатывающий объект Event с помощью прослушивателя событий.
targetЛюбой экземпляр DisplayObject, для которого зарегистрирован прослушиватель события activate.

Связанные элементы API

deactivate

Событие  
Тип объекта события: flash.events.Event
свойство Event.type = flash.events.Event.DEACTIVATE

Язык версии: ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9, Flash Lite 4

[многоадресное событие] Отправляется, когда проигрыватель Flash Player или приложение AIR теряет фокус системы и становится неактивным. Это многоадресное событие, которое отправляется всеми объектами EventDispatcher, для которых зарегистрированы прослушиватели данного события. Дополнительную информацию о многоадресных событиях см. в описании класса DisplayObject.

Константа Event.DEACTIVATE определяет значение свойства type объекта события deactivate.

Примечание. Это событие не имеет фазы захвата и фазы восходящей цепочки, поэтому отправляется непосредственно целевому элементу независимо от того, находится он в списке отображения или нет.

На устройствах AIR for TV это событие никогда не отправляется автоматически. Однако его можно отправить вручную.

Это событие имеет следующие свойства:

СвойствоЗначение
bubblesfalse
cancelablefalse; поведение по умолчанию, подлежащее отмене, не определено.
currentTargetОбъект, активно обрабатывающий объект Event с помощью прослушивателя событий.
targetЛюбой экземпляр DisplayObject, для которого зарегистрирован прослушиватель события deactivate.

Связанные элементы API

EventDispatcherExample.as

В следующем примере используются классы EventDispatcherExample и CustomDispatcher, подкласс EventDispatcher, чтобы показать процесс создания и отправки пользовательского события. Для этого выполняются следующие задачи:
  1. Конструктор EventDispatcherExample создает локальную переменную dispatcher и назначает ее новому экземпляру CustomDispatcher.
  2. Внутри CustomDispatcher задается строка, присваивающая событию имя action, и объявляется метод doAction(). При вызове этого метода создается событие action и отправляется с помощью метода EventDispatcher.dispatchEvent().
  3. Затем используется свойство dispatcher для добавления прослушивателя события action и связанного метода подписчика actionHandler(), который при отправке события просто печатает информацию о нем.
  4. Вызывается метод doAction(), отправляющий событие action.
package {
    import flash.display.Sprite;
    import flash.events.Event;

    public class EventDispatcherExample extends Sprite {

        public function EventDispatcherExample() {
            var dispatcher:CustomDispatcher = new CustomDispatcher();
            dispatcher.addEventListener(CustomDispatcher.ACTION, actionHandler);
            dispatcher.doAction();
        }

        private function actionHandler(event:Event):void {
            trace("actionHandler: " + event);
        }
    }
}

import flash.events.EventDispatcher;
import flash.events.Event;

class CustomDispatcher extends EventDispatcher {
    public static var ACTION:String = "action";

    public function doAction():void {
        dispatchEvent(new Event(CustomDispatcher.ACTION));
    }
}




[ X ]Почему по-английски?
Содержимое Справочника ActionScript 3.0 отображается на английском языке

Не все части Справочника ActionScript 3.0 переводятся на все языки. Если какой-то текстовый элемент не переведен, он отображается на английском языке. Например, компонент ga.controls.HelpBox не переведен ни на один из языков. Это значит, что в русской версии справки компонент ga.controls.HelpBox будет отображаться на английском языке.