gpt4 book ai didi

timer - 电晕 : timer. 取消()返回 "Attempt to index a nil value"

转载 作者:行者123 更新时间:2023-12-01 07:00:03 25 4
gpt4 key购买 nike

我正在尝试取消在另一个“触摸事件”函数内的“触摸事件”函数中启动的计时器,如下所示:

local function startNewGame(event)
if(event.phase=="ended")then
local function animationImmaginiOggetti()
for i=1, 7 do
transition.to(immaginiOggettiAvvioPartita[i],
{ time = 200, delay = 0, xScale = 0, yScale = 0, alpha = 0})
end
end
local function removeImmaginiOggetti()
if immaginiOggettiAvvioPartita[1] then
for i=1, 11 do
immaginiOggettiAvvioPartita[i]:removeSelf()
immaginiOggettiAvvioPartita[i] = nil
end
end
end

local tmrAIO = timer.performWithDelay(4000, animationImmaginiOggetti, 1)
local tmrRIO = timer.performWithDelay(4250, removeImmaginiOggetti, 1)
end
end


local function replayGame(event)
if(event.phase=="ended")then
timer.cancel(tmrAIO)
timer.cancel(tmrRIO)
end
end

startBTN:addEventListener("touch", startNewGame)
replayBTN:addEventListener("touch", replayGame)

我的问题是电晕回来了

"File: ? Attempt to index a nil value" on timer.cancel (tmrAIO).

我做错了什么?

最佳答案

问题如下,变量tmrAIOtmrRIO 是函数startNewGame 的局部变量,这意味着它们只能从startNewGame 定义的范围,现在您正尝试从该函数外部访问这两个,但它们未在该范围内定义,这就是 nil 值的原因。

解决方法:

local tmrAIO
local tmrRIO

local function startNewGame(event)
if(event.phase=="ended")then
local function animationImmaginiOggetti()
for i=1, 7 do
transition.to(immaginiOggettiAvvioPartita[i],
{time = 200, delay = 0, xScale = 0, yScale = 0, alpha = 0})
end
end
local function removeImmaginiOggetti()
if immaginiOggettiAvvioPartita[1] then
for i=1, 11 do
immaginiOggettiAvvioPartita[i]:removeSelf()
immaginiOggettiAvvioPartita[i] = nil
end
end
end

tmrAIO = timer.performWithDelay(4000, animationImmaginiOggetti, 1)
tmrRIO = timer.performWithDelay(4250, removeImmaginiOggetti, 1)
end
end

local function replayGame(event)
if(event.phase=="ended")then
timer.cancel(tmrAIO)
timer.cancel(tmrRIO)
end
end

startBTN:addEventListener("touch", startNewGame)
replayBTN:addEventListener("touch", replayGame)

如您所见,我在 startNewGame 的范围之外声明了 tmrAIOtmrRIO,使它们可以在此文件中的任何位置访问。

关于timer - 电晕 : timer. 取消()返回 "Attempt to index a nil value",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32403817/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com