Для цели компиляции Flash лучшее, что вы можете сделать, это использовать таймер и что-то вроде этой функции setTimeout(). Это означает, что вы нарезаете свою функцию на две части - все до setTimeout(), и все после этого, которое находится в отдельной функции, которую может вызвать таймаут. так somethine, как, например:
tooltipTimerId = GlobalTimer.setTimeout(
Tooltip.TOOLTIP_DELAY_MS,
handleTooltipAppear,
tootipParams
);
[...]
class GlobalTimer {
private static var timerList:Array<Timer>;
public static function setTimeout(milliseconds:Int, func:Dynamic, args:Array<Dynamic>=null):Int {
var timer:Timer = new Timer(milliseconds);
var id = addTimer(timer, timerList);
timer.run = function() {
Reflect.callMethod(null, func, args);
clearTimeout(id);
}
return id;
}
private static function addTimer(timer:Timer, arr:Array<Timer>):Int {
for (i in 0...arr.length) {
if (null == arr[i]) {
arr[i] = timer;
return i;
}
}
arr.push(timer);
return arr.length -1;
}
public static function clearTimeout(id:Int) {
var timers:Array<Timer> = GlobalTimer.getInstance().timerList;
try {
timers[id].stop();
timers[id] = null;
} catch(e:Error) {/* Nothing we can do if it fails, really. */}
}
}
К сожалению, забыл упомянуть, я строю на Flash, и Sys поддерживает только Неко, PHP, C++, CS и Java, так Я получаю «Доступ к этому полю требует системной платформы (php, neko, cpp и т. Д.)», Когда я пытаюсь построить при использовании 'Sys.sleep()' – IBPX
Я знаю, что вы можете сделать 'haxe.Timer.delay (a, b) 'делать' a' после 'b' миллисекунд, но остальная часть скрипта не ждет его. Есть ли какая-то комбинация 'this.stop()' и 'this.resume()', которую я мог бы использовать? – IBPX
Как долго вам нужно задерживаться? Ожидаете ли вы процессы или вы задерживаетесь для ввода пользователем? –