轉換函數返回對轉換的引用,您可以稍後傳遞給transition.cancel
以取消轉換。
local currentTransition = nil
local function first()
currentTransition = transition.to(ball, {x=100, y=200, time = 200}
end
local function stop()
if (score == 0 and currentTransition ~= nil) then
transition.cancel(currentTransition)
end
end
更多細節here
編輯 -
在功能手動處理這個你實現,你需要有一個支持一些標誌或狀態,某些類型的註銷支票的任何功能確定是否繼續操作。這就是現在多線程應用程序支持取消的方式,您可以預先創建一個取消標記並將其傳遞給做長時間/密集工作的任何事情,並且代碼偶爾檢查標誌並在發生取消時停止。由於純lua不支持多線程,因此以下是一個基本和人爲的示例:
local token = { cancelled = false }
local function bar(cancellationToken)
print("Hi, from bar!")
-- simulate user cancellation
cancellationToken.cancelled = true
end
local function foo(cancellationToken)
for i=0, 10 do
if (cancellationToken.cancelled) then
print("Cancelling operation...")
return
end
print(i)
bar(cancellationToken)
end
end
foo(token)
如果不是過渡? –
對於這一點,這取決於。它是你實現的函數還是api函數? –
只是一個正常的功能,例如我做了一個重複更改背景色 –