Класс: 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)
Общедоступные свойства
- Значение по умолчанию
- true
- Исходный код: core/Signal.js (Строка 100)
- Исходный код: core/Signal.js (Строка 84)
active : boolean
Активен ли сигнал? Только активные сигналы будут транслировать отправленные события.
Установка этого свойства во время отправки повлияет только на следующее отправление. Чтобы остановить распространение сигнала от слушателя, используйте halt.
memorize : boolean
Запомнить ранее отправленное событие?
Если событие было запомнено, оно автоматически отправляется при добавлении нового слушателя с помощью add или addOnce.
Используйте forget для очистки любого запомненного события.
Общедоступные методы
- Исходный код: core/Signal.js (Строка 232)
- Исходный код: core/Signal.js (Строка 274)
- Исходный код: core/Signal.js (Строка 395)
- Исходный код: core/Signal.js (Строка 451)
- Исходный код: core/Signal.js (Строка 437)
- Исходный код: core/Signal.js (Строка 369)
- Исходный код: core/Signal.js (Строка 381)
- Исходный код: core/Signal.js (Строка 218)
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> | Контекст, в котором будет выполнен обработчик (т. е. объект, который должен представлять переменную | |
priority | number | <optional> | Уровень приоритета обработчика событий. Обработчики с более высоким приоритетом будут выполнены перед обработчиками с более низким приоритетом. Обработчики с одинаковым уровнем приоритета будут выполняться в том же порядке, в котором они были добавлены (по умолчанию = 0) | |
args | any | <optional> <repeatable> | (none) | Дополнительные аргументы для передачи в функцию обратного вызова (listener). Они будут добавлены после любых обычно отправляемых аргументов. |
Возвращает
Объект, представляющий связь между сигналом и обработчиком.
addOnce(listener, listenerContext, priority, args) → {Phaser.SignalBinding}
Добавить одноразовый обработчик — обработчик автоматически удаляется после первого выполнения.
Если есть событие memorize, то оно будет отправлено, и
обработчик будет немедленно удален.
Параметры
| Имя | Тип | Аргумент | Значение по умолчанию | Описание |
|---|---|---|---|---|
listener | function | Функция, вызываемая при отправке этого сигнала. | ||
listenerContext | object | <optional> | Контекст, в котором будет выполнен обработчик (т. е. объект, который должен представлять переменную | |
priority | number | <optional> | Уровень приоритета обработчика событий. Обработчики с более высоким приоритетом будут выполнены перед обработчиками с более низким приоритетом. Обработчики с одинаковым уровнем приоритета будут выполняться в том же порядке, в котором они были добавлены (по умолчанию = 0) | |
args | any | <optional> <repeatable> | (none) | Дополнительные аргументы для передачи в функцию обратного вызова (listener). Они будут добавлены после любых обычно отправляемых аргументов. |
Возвращает
Объект, представляющий связь между сигналом и обработчиком.
dispatch(params)
Отправить/разослать событие всем обработчикам.
Чтобы создать привязанную к экземпляру отправку для этого сигнала, используйте boundDispatch.
Параметры
| Имя | Тип | Аргумент | Описание |
|---|---|---|---|
params | any | <optional> | Параметры, которые должны быть переданы каждому обработчику. |
dispose()
Удалить сигнал — больше никаких событий не может быть отправлено.
Это удаляет все обработчики событий и очищает ссылки на внешние объекты.
Вызов методов для удаленных объектов приводит к неопределенному поведению.
forget()
Забыть текущее memorized событие, если таковое имеется.
getNumListeners() → {integer}
Получает общее количество обработчиков, прикрепленных к этому сигналу.
Возвращает
Количество обработчиков, прикрепленных к сигналу.
halt()
Остановить распространение события, блокируя отправку следующему обработчику в очереди.
Это должно вызываться только во время отправки события, так как вызов его до/после отправки не повлияет на другую рассылку.
См. active для полного включения/выключения сигнала.
has(listener, context) → {boolean}
Проверить, прикреплен ли определенный обработчик.
Параметры
| Имя | Тип | Аргумент | Описание |
|---|---|---|---|
listener | function | Функция обработчика сигнала. | |
context | object | <optional> | Контекст, в котором будет выполнен обработчик (объект, который должен представлять переменную |
Возвращает
Если сигнал имеет указанный обработчик.
remove(listener, context) → {function}
Удалить один обработчик событий.
Параметры
- Исходный код: core/Signal.js (Строка 305)
- Исходный код: core/Signal.js (Строка 329)
- Исходный код: core/Signal.js (Строка 471)
| Имя | Тип | Аргумент | Значение по умолчанию | Описание |
|---|---|---|---|---|
listener | функция | Функция-обработчик, которая должна быть удалена. | ||
context | объект | <необязательно> | null | Контекст выполнения (поскольку вы можете добавить один и тот же обработчик несколько раз, если выполняете в другом контексте). |
Возвращает
Функция-обработчик слушателя.
removeAll(контекст)
Удалить всех слушателей событий.
Параметры
| Имя | Тип | Аргумент | Значение по умолчанию | Описание |
|---|---|---|---|---|
context | объект | <необязательно> | null | Если указано, будут удалены только слушатели для заданного контекста. |
toString() → {строка}
Строковое представление объекта.
Возвращает
Строковое представление объекта.
© 2016 Richard Davey, Photon Storm Ltd.
Licensed under the MIT License.
http://phaser.io/docs/2.6.2/Phaser.Signal.html