-
Notifications
You must be signed in to change notification settings - Fork 41
components.Delay
компоненты : Delay
Delay - компонент, аналог javascript функции [setTimeouthttps://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setTimeout, который служит для однократного вызова функции с заданной задержкой. Delay не доступен для добавления на сцену через редактор сцен, и используется только из javascript вызовом статического метода Delay.delay().
Почему в игровой логике следует использовать метод Delay.delay() вместо стандартного для javascript setTimeout()? Счетчик созданный через Delay.delay() автоматически привязывается к текущей сцене, и если игрок закроет сцену и выйдет в главное меню игры, или на экране появится модальный диалог, счетчик будет приостановлен до возвращения игрока в сцену, в которой счетчик создан. Если сцена или объект, к которому счетчик привязан уничтожается - то счетчик будет отменен автоматически. Это позволяет избежать большого количества ошибок при разработке игры. В дополнение, в игровом редакторе, игра может быть поставлена на паузу в целях отладки. Все созданные на данный момент счетчики отображаются в дереве сцены, и текущее время каждого счетчика может быть отредактировано в редакторе свойств.
Для игровых событий, наступающих с определенной задержкой не обязательно использовать javascript и Delay. Можно воспользоваться компонентом MovieClip и расположить на его таймлайне ключевые кадры с вызовом нужных методов в нужное время.
Тип: Number
В данном поле хранится задержка в кадрах (60 кадров равно одной секунде) оставшаяся до срабатывания счетчика.
Delay.delay (callback : Function, delayFrames : Number, container : DisplayObject = game.currentContainer)
Возвращаемый тип: [Delay]
Создает привязанный к сцене счетчик, по истечению которого будет вызвана функция, переданная в параметре callback.
Параметр delayFrames - определяет длительность задержки в кадрах (60 кадров равно одной секунде) по истечению которой сработает счетчик.
Параметром container можно задать экранный объект, к которому будет привязан созданный счетчик в качестве дочернего объекта. Если оставить этот параметр пустым, то созданный счетчик будет привязан к game.currentContainer.
import Delay from "thing-editor/js/engine/components/delay";
function callback() {
console.log("Half of second has past.")
}
let d = Delay.delay(callback, 30); //30 frames (half of second) delay
d.remove(); // to cancel delay.
Данный метод унаследован, и может быть использован для досрочной отмены задержки и удаления Delay объекта со сцены.
Немедленное выполнение обработчика callback и удаление Delay объекта со сцены.
<- Предыдущая страница Следующая страница ->