0
我在基于事件侦听器和全局变量获取场景时发生问题。Corona sdk enterframe event director with director
基本上,由于选择的水平需要被限制,所以在做出某些选择之后重新进行变量finalcount
的增量。当计数器达到4时,场景应该改变,这使得finalcountscene
变量等于1.这应该引发场景的改变,而不是scenechangeworking
5次。所以这个功能起作用,但场景不会改变。请帮忙!代码可以在下面找到。
local function scenechangecount (event)
if gameState.finalcountscene == 1 then
Runtime:removeEventListener("enterFrame", maincount)
director:changeScene ("gamemenu")
print("scene change working")
Runtime:removeEventListener("enterFrame", scenechangecount)
end
end
local function maincount (event)
if gameState.finalcount == 4 then
gameState.finalcountscene = 1
print("working",gameState.finalcount, "scene count", gameState.finalcountscene)
Runtime:removeEventListener("enterFrame", maincount)
elseif gameState.finalcount == 3 then
gameState.finalcount = gameState.finalcount +1
print(gameState.finalcount)
local message = display.newImage ("images/message.png")
message.x = display.contentWidth/2 - display.contentWidth/6
message.y = display.contentHeight/2 - display.contentHeight/4 - display.contentHeight/18
localGroup:insert(message)
Runtime:removeEventListener("enterFrame", maincount)
else
gameState.finalcount = gameState.finalcount + 1
print(gameState.finalcount)
Runtime:removeEventListener("enterFrame", maincount)
end
end
Runtime:addEventListener ("enterFrame", scenechangecount)
Runtime:addEventListener ("enterFrame", maincount)
嗨,谢谢你的回复。我已经改变了给导演的呼叫顺序,以改变场景,但它多次重复呼叫,但不改变场景。我删除事件监听器的原因是因为计数器在每次场景返回时都会增加。它就像一个菜单页面,其中按钮导致不同的外部场景,所以当这个场景返回到计数增加时。如果有人可以弄清楚,我会永远感激 – user1728717
什么情况会导致gameState.finalcount增加?我不确定你想用enterFrame监听器来调用maincount()。 您为maincount()设置enterFrame侦听器并调用它,递增gameState.finalcount变量,然后立即删除enterFrame侦听器。我没有看到你如何回到这个功能。你是否在其他地方设置了enterFrame监听器? –