Где setTimeout из JavaScript в Haxe?

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


person nepa    schedule 29.09.2011    source источник


Ответы (2)


Для одноразового выполнения я думаю, что Timer.delay() идеально подходит. Вы можете использовать возвращенный экземпляр, чтобы остановить таймер позже:

var timer = haxe.Timer.delay(function() trace("Hello World!"), 250);
...
timer.stop();

Вы также можете получить доступ к родному setTimeout() с помощью внешнего вида js.html.Window:

var handle = js.Browser.window.setTimeout(function() trace("Hello World!"), 250);
...
js.Browser.window.clearTimeout(handle);
person Franco Ponticelli    schedule 29.09.2011

Если вы используете структуру kha:

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

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

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

person Rafael Kress    schedule 01.09.2017