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監聽器? –