Corona sdk enterframe活动问题与导演

时间:2012-12-09 23:49:44

标签: function lua event-handling corona

我遇到了根据事件监听器和全局变量更改场景的问题。

基本上,在进行某些选择后,场景会重复,这会使变量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)

1 个答案:

答案 0 :(得分:0)

我看到了几个问题。首先在你的第一个函数scenechangecount中,在你删除enterFrame监听器之前调用director更改场景,这样你的函数将继续运行并尝试多次更改场景。尝试将导演呼叫移动到这三行中的最后一行。

其次,您似乎每次都要删除maincount输入框架,但至少在上面只添加一次。所以我没有看到你如何增加计数器的方式来删除该enterframe。