Попытка создать простое приложение командной строки в Haxe с тикающим таймером, но, похоже, это не сработает; Таймер никогда не начинает «тикать».
package;
import haxe.Timer;
class TimerCallback {
private static inline var CHAR_SPACE : Int = 32;
public static function main() : Void {
var myME = new TimerTicker();
while (Sys.getChar(false) != CHAR_SPACE) {
//loop until [space] detected, do nothing here
}
}
}
class TimerTicker {
private var myTimer : Timer = null;
public function new() {
myTimer = new Timer(20);
myTimer.run = timer_OnTick;
}
private function timer_OnTick() : Void {
Sys.println ("foobar");
}
/* destructor?! */
}
А это команда сборки:
>haxe.exe -lib nme -main TimerCallback -cpp .\bin
Если я не добавляю -lib nme
, код не компилируется (на основе документации API это нормально, так как таймер не поддерживается для cpp, поэтому доступны только статические функции)
Если я добавляя это, однако, код компилируется, поскольку nme поддерживает таймеры cpp, и создается exe (выигрыш), но timer_OnTick()
никогда не вызывается. Итак, exe запускается, ничего не происходит, одно нажатие SPACE
и app. выходит.
Дополнительная информация:
- Импортированный файл Timer.hx
таков: haxe\lib\nme\5,1,8\haxe
. И если я прав, все должно быть в порядке и работать.
— Использование haxe 3.1.3, nme 5.1.8, hxcpp 3.1.39 (и haxelib 3.1.0-rc.4, если имеет значение)
Любая помощь будет высоко оценена.