Есть ли в Haxe реализация setTimeout()
и clearTimeout()
? Конечно, можно использовать класс Timer
, но, я думаю, для выполнения одним выстрелом это не лучший способ.
Где "setTimeout" из JavaScript в Haxe?
Ответ 1
Для однократного выполнения я думаю, что Timer.delay()
идеально подходит. Вы можете использовать возвращенный экземпляр, чтобы позже остановить таймер:
var timer = haxe.Timer.delay(function() trace("Hello World!"), 250);
...
timer.stop();
Вы также можете получить доступ к собственному setTimeout()
с помощью js.html.Window
extern:
var handle = js.Browser.window.setTimeout(function() trace("Hello World!"), 250);
...
js.Browser.window.clearTimeout(handle);
Ответ 2
В случае, если вы используете платформу Kha, haxe.Timer.delay()
вызывает kha.Scheduler
, который, в конце концов, не получает timestamps
через setTimeout
- он получает их через requestAnimationFrame()
.
Кажется, что это не работает, когда вкладка неактивна, так что это не та же функция, когда вкладка неактивна.
Я пытаюсь обойти эту проблему, но на данный момент она не дает того же результата, что и нативная setTimeout()
-JS (хотя я нашел решение, которое я представлю для включения).