Мне нужно вызвать функцию с переменной задержкой в Corona SDK. Я пытаюсь создать функцию, которая будет выполнять кусок кода, который проверяет, должна ли функция timer.performWithDelay продолжать цикл, и отключает ее, если условия правильные. Однако этот код не уместен. Мне просто нужно иметь цикл отложенных вызовов функций, время задержки которых может варьироваться. В настоящий момент я использую следующий код:Время переменной задержки в timer.performWithDelay
time = 500
local function foo(time)
print(time)
end
timer.performWithDelay(time, function()
time = time + 100
foo(time)
end, 10)
Очевидно, что это не работает. То, что я думаю, происходит за кулисами, - timer.performWithDelay только разглядывает переменное время один раз и использует это для остальной части своего существования. Есть ли у кого-нибудь какие-либо методы, которые допускают переменную временную задержку в такой ситуации?
EDIT: ОПИСАНИЕ ПРИМЕНЕНИЯ: Я использую эту функцию в модуле скелетных анимаций. Когда я воспроизвожу последовательность кадров, мне нужно иметь возможность приостанавливать, возобновлять или отменять клип по своему усмотрению, поэтому мне нужен цикл отложенных вызовов функций, каждый из которых устанавливает текущий кадр с набором переходов. , Это означает, что цикл должен быть в состоянии приостановить, возобновить и отменить также,, поэтому я решил использовать timer.performWithDelay, используя количество кадров в клипе в качестве номера цикла. Я изложил псевдокод ниже.
псевдопользователей-код:
local flag = false
function loop(clip, object)
for i = 1, number_frames_in_clip do
timer.performWithDelay(duration_of_last_frame + time_elapsed, animate_object())
if flag == true then
pause_loop() <-- The real issue lies in pausing the loop
end
end
end
function pause(object)
for i = 1, number_in_object.transitionTable do
transition.pause(object.transitionTable[i])
end
flag = true
end
Этот код только execu tes функция PrintTime() один раз. Я ищу что-то, что будет цикл в течение определенного количества раз. Я обновил свой вопрос с конкретным описанием моего приложения в случае, если вы поможете понять, откуда я. – user3014065
Я отредактировал код, посмотри. – iBad
iBad, спасибо за помощь. Я получил свой код для работы с прослушивателем времени выполнения и анонимной функцией. Я дам вам выкуп и соглашусь на помощь. – user3014065