Spec-Zone.ru › Phaser

Класс: Phaser.Signal

Конструктор

new Signal()

Сигналы — это то, что Phaser использует для обработки событий и их отправки.
Вы можете прослушивать сигнал, связав с ним обратный вызов/функцию.
Это делается с помощью Signal.add или Signal.addOnce.

Например, вы можете прослушивать событие касания или щелчка от Input Manager
с помощью его сигнала onDown:

game.input.onDown.add(function() { ... });

Вместо прямой функции вы можете передать ссылку:

game.input.onDown.add(clicked, this);
function clicked () { ... }

В этом случае второй аргумент (this) — контекст, в котором ваша функция должна быть вызвана.

Теперь каждый раз, когда InputManager отправляет сигнал onDown (или событие), ваша функция
будет вызвана.

Часто сигнал отправляет аргументы в вашу функцию.
Это специфично для самого сигнала.
Если вы не уверены, проверьте документацию, а в крайнем случае просто сделайте:

Signal.add(function() { console.log(arguments); })

и это выведет все аргументы, полученные вашей функцией от сигнала.

Спрайты имеют множество стандартных сигналов, которые вы можете прослушивать в их классе Events, например:

sprite.events.onKilled

который вызывается автоматически всякий раз, когда спрайт уничтожается.
Есть и другие события, см. компонент Events для списка.

Помимо прослушивания предварительно определённых сигналов, вы также можете создавать свои:

var mySignal = new Phaser.Signal();

Это создаёт новый сигнал. Вы можете связать с ним обратный вызов:

mySignal.add(myCallback, this);

и, наконец, когда всё готово, вы можете отправить сигнал:

mySignal.dispatch(your arguments);

И ваш обратный вызов будет вызван. Более подробная информация — в методе dispatch.

Исходный код: core/Signal.js (Строка 60)

Общедоступные свойства

active : boolean

Активен ли сигнал? Только активные сигналы будут транслировать отправленные события.

Установка этого свойства во время отправки повлияет только на следующее отправление. Чтобы остановить распространение сигнала от слушателя, используйте halt.

Значение по умолчанию
  • true
Исходный код: core/Signal.js (Строка 100)

memorize : boolean

Запомнить ранее отправленное событие?

Если событие было запомнено, оно автоматически отправляется при добавлении нового слушателя с помощью add или addOnce.
Используйте forget для очистки любого запомненного события.

Исходный код: core/Signal.js (Строка 84)

Общедоступные методы

add(listener, listenerContext, priority, args) → {Phaser.SignalBinding}

Добавить обработчик событий для этого сигнала.

Обработчик событий — это обратный вызов со связанным контекстом и приоритетом.

Необязательно можно указать дополнительные аргументы, которые будут переданы в обратный вызов после любых внутренних параметров.

Например: Phaser.Key.onDown при отправке будет отправлять объект Phaser.Key, вызвавший сигнал, в качестве первого параметра.
Любые аргументы, указанные после priority, также будут отправлены:

fireButton.onDown.add(shoot, this, 0, 'lazer', 100);

Когда onDown отправляет, он вызывает обратный вызов shoot, передавая ему: Phaser.Key, 'lazer', 100.

Где первый параметр — это тот, который Key.onDown отправляет внутренне, а 'lazer',
и значение 100 были пользовательскими аргументами, указанными в вызове 'add'.

Параметры
Имя Тип Аргумент Значение по умолчанию Описание
listener function

Функция, вызываемая при отправке этого сигнала.

listenerContext object <optional>

Контекст, в котором будет выполнен обработчик (т. е. объект, который должен представлять переменную this).

priority number <optional>

Уровень приоритета обработчика событий. Обработчики с более высоким приоритетом будут выполнены перед обработчиками с более низким приоритетом. Обработчики с одинаковым уровнем приоритета будут выполняться в том же порядке, в котором они были добавлены (по умолчанию = 0)

args any <optional>
<repeatable>
(none)

Дополнительные аргументы для передачи в функцию обратного вызова (listener). Они будут добавлены после любых обычно отправляемых аргументов.

Возвращает
Phaser.SignalBinding -

Объект, представляющий связь между сигналом и обработчиком.

Исходный код: core/Signal.js (Строка 232)

addOnce(listener, listenerContext, priority, args) → {Phaser.SignalBinding}

Добавить одноразовый обработчик — обработчик автоматически удаляется после первого выполнения.

Если есть событие memorize, то оно будет отправлено, и
обработчик будет немедленно удален.

Параметры
Имя Тип Аргумент Значение по умолчанию Описание
listener function

Функция, вызываемая при отправке этого сигнала.

listenerContext object <optional>

Контекст, в котором будет выполнен обработчик (т. е. объект, который должен представлять переменную this).

priority number <optional>

Уровень приоритета обработчика событий. Обработчики с более высоким приоритетом будут выполнены перед обработчиками с более низким приоритетом. Обработчики с одинаковым уровнем приоритета будут выполняться в том же порядке, в котором они были добавлены (по умолчанию = 0)

args any <optional>
<repeatable>
(none)

Дополнительные аргументы для передачи в функцию обратного вызова (listener). Они будут добавлены после любых обычно отправляемых аргументов.

Возвращает
Phaser.SignalBinding -

Объект, представляющий связь между сигналом и обработчиком.

Исходный код: core/Signal.js (Строка 274)

dispatch(params)

Отправить/разослать событие всем обработчикам.

Чтобы создать привязанную к экземпляру отправку для этого сигнала, используйте boundDispatch.

Параметры
Имя Тип Аргумент Описание
params any <optional>

Параметры, которые должны быть переданы каждому обработчику.

Исходный код: core/Signal.js (Строка 395)

dispose()

Удалить сигнал — больше никаких событий не может быть отправлено.

Это удаляет все обработчики событий и очищает ссылки на внешние объекты.
Вызов методов для удаленных объектов приводит к неопределенному поведению.

Исходный код: core/Signal.js (Строка 451)

forget()

Забыть текущее memorized событие, если таковое имеется.

Исходный код: core/Signal.js (Строка 437)

getNumListeners() → {integer}

Получает общее количество обработчиков, прикрепленных к этому сигналу.

Возвращает
integer -

Количество обработчиков, прикрепленных к сигналу.

Исходный код: core/Signal.js (Строка 369)

halt()

Остановить распространение события, блокируя отправку следующему обработчику в очереди.

Это должно вызываться только во время отправки события, так как вызов его до/после отправки не повлияет на другую рассылку.
См. active для полного включения/выключения сигнала.

Исходный код: core/Signal.js (Строка 381)

has(listener, context) → {boolean}

Проверить, прикреплен ли определенный обработчик.

Параметры
Имя Тип Аргумент Описание
listener function

Функция обработчика сигнала.

context object <optional>

Контекст, в котором будет выполнен обработчик (объект, который должен представлять переменную this внутри функции обработчика).

Возвращает
boolean -

Если сигнал имеет указанный обработчик.

Исходный код: core/Signal.js (Строка 218)

remove(listener, context) → {function}

Удалить один обработчик событий.

Параметры
Имя Тип Аргумент Значение по умолчанию Описание
listener функция

Функция-обработчик, которая должна быть удалена.

context объект <необязательно>
null

Контекст выполнения (поскольку вы можете добавить один и тот же обработчик несколько раз, если выполняете в другом контексте).

Возвращает
функция -

Функция-обработчик слушателя.

Исходный код: core/Signal.js (Строка 305)

removeAll(контекст)

Удалить всех слушателей событий.

Параметры
Имя Тип Аргумент Значение по умолчанию Описание
context объект <необязательно>
null

Если указано, будут удалены только слушатели для заданного контекста.

Исходный код: core/Signal.js (Строка 329)

toString() → {строка}

Строковое представление объекта.

Возвращает
строка -

Строковое представление объекта.

Исходный код: core/Signal.js (Строка 471)

© 2016 Richard Davey, Photon Storm Ltd.
Licensed under the MIT License.
http://phaser.io/docs/2.6.2/Phaser.Signal.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API