Function 与控制器的帧事件问题
我无法根据事件侦听器和全局变量更改场景 基本上,在进行某些选择后,场景会重复,这会增加变量Function 与控制器的帧事件问题,function,lua,event-handling,coronasdk,Function,Lua,Event Handling,Coronasdk,我无法根据事件侦听器和全局变量更改场景 基本上,在进行某些选择后,场景会重复,这会增加变量finalcount,因为选择的级别需要限制。当计数器达到4时,场景应该改变,这使得finalcountscene变量等于1。这将触发场景更改,而不是scenechangeworking5次。因此,该功能起作用,但场景不会改变。请帮忙!代码可以在下面找到 local function scenechangecount (event) if gameState.finalcountscene == 1
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)
我看到了几个问题。首先,在第一个函数scenechangecount中,在删除enterFrame侦听器之前调用director来更改场景,这样您的函数将继续运行并尝试多次更改场景。试着把导演的电话转到这三行中的最后一行
其次,似乎每次都要删除maincountenter帧,但至少在上面只添加一次。所以我看不出你是如何以移除enterframe的方式递增计数器的 嗨,谢谢你的回复。我已经更改了对director的调用顺序以更改场景,但它多次重复调用,但没有更改场景。我删除事件侦听器的原因是,每次场景返回时,计数器都会递增。它就像一个菜单页面,按钮指向不同的外部场景,因此当该场景返回时,计数会增加。如果有人能弄明白这一点,我将永远感激你。什么条件会导致gameState.finalcount增加?我不确定是否要使用enterFrame侦听器调用maincount()。为maincount()设置enterFrame侦听器并调用它,增加gameState.finalcount变量,然后立即删除enterFrame侦听器。我不明白你是怎么回到这个函数的。您是否在其他地方设置enterFrame侦听器?