Где находится "setTimeout" из JavaScript в Haxe? - PullRequest
10 голосов
/ 29 сентября 2011

Есть ли в Haxe реализация setTimeout() и clearTimeout()?Конечно, можно использовать класс Timer, но для однократного выполнения, я думаю, это не лучший способ.

Ответы [ 2 ]

12 голосов
/ 29 сентября 2011

Для однократного исполнения я думаю, что 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 голосов
/ 01 сентября 2017

В случае, если вы используете framework:

Kha изменяет haxe.Timer на вызов kha.Scheduler, который в итоге не получает timestamps через setTimeout - он получает их через requestAnimationFrame().

Кажется, что это не работает, когда вкладка неактивна, так что это не та же функция, когда вкладка неактивна.

Я пытаюсь обойти эту проблему, но на данный момент она не дает того же результата, что и нативный setTimeout() -JS (хотя я нашел обходной путь, который я представлю для включения).

...