2011-09-29 7 views

Odpowiedz

10

Dla realizacji jednorazowe myślę że Timer.delay() jest idealny:

haxe.Timer.delay(function() trace("Hello World! I am late :("), 250); 

Jeśli chcesz nadal można uzyskać dostęp za pomocą rodzimych JS bez typu __js __ ("setTimeout") (...) , ale zniechęcam cię do robienia tego, o ile nie jest to absolutnie konieczne.

+0

Ah, zapomniałem coś: Czy istnieje możliwość zatrzymania go jeszcze przed jego wykonaniem (clearTimeout)? – nepa

+1

@nepa: 'Timer.delay' zwraca instancję licznika czasu. Możesz wywołać 'stop', aby anulować wykonanie. – back2dos

+1

Może być dostępny przez js.Browser.window.setTimeout w Haxe 3, ale Franco zdecydowanie ma rację z wykorzystaniem klasy Timer. –

2

Stąd nie mogę komentować, Dodaję to jako odpowiedź:

haxe.Timer.delay() wywołuje kha.scheduler, który w końcu nie otrzyma timestamps poprzez setTimeout - robi się to poprzez requestanimationframe.

Wygląda na to, że nie działa, gdy karta jest nieaktywna, więc nie jest to ta sama funkcja, gdy karta jest nieaktywna.

Obecnie pracuję nad obejściem problemu, ale w tej chwili nie daje to takiego samego rezultatu, jak natywny "setTimeout" -JS ma (Jeszcze znalazłem obejście, które zamierzam przedstawić obrabować, może on rozważa włączenie).