按钮gotoScene不工作

时间:2013-02-24 18:29:33

标签: lua corona corona-storyboard

如果我点击按钮,storyboard.gotoScene("facebook", "fade", 400)无法正常工作,我在终端中没有收到任何错误消息。我做错了什么?

-- requires 
display.setStatusBar( display.HiddenStatusBar ) 
_W = display.contentWidth; --Returns Screen Width
_H = display.contentHeight; --Returns Screen Height


local storyboard = require ("storyboard")
local scene = storyboard.newScene()

-- background

function scene:createScene(event)

    local screenGroup = self.view
    background = display.newImage("restart.png")
    screenGroup:insert(background)

    button = display.newImage("share2.png") 
    button.x = display.contentWidth / 2
    button.y = display.contentHeight -400
end

  function listener(event) 
    if event.phase == "began" then
          print(event.name.." occurred") 
        storyboard.gotoScene("facebook", "fade", 400)
    end
end 

function scene:enterScene(event)
    storyboard.purgeScene("game")
    button:addEventListener( "tap", listener ) 
end

function scene:exitScene(event)
    button:removeEventListener( "tap", listener ) 
end

function scene:destroyScene(event)
end

scene:addEventListener("createScene", scene)
scene:addEventListener("enterScene", scene)
scene:addEventListener("exitScene", scene)
scene:addEventListener("destroyScene", scene)

return scene

5 个答案:

答案 0 :(得分:1)

“tap”事件和“touch”事件是不同的,它们会将不同的“阶段”传递给事件处理程序。你编写事件处理程序的方式,你期待“触摸”事件(开始,结束,移动)。点击事件并不真正产生任何阶段,无论是否被点击。

要么改变这两行:

button:addEventListener( "tap", listener ) 
button:removeEventListener( "tap", listener ) 

为:

button:addEventListener( "touch", listener ) 

button:removeEventListener( "touch", listener ) 

或者您可以将列表器更改为:

function listener(event) 
    print(event.name.." occurred") 
    storyboard.gotoScene("facebook", "fade", 400)
end

答案 1 :(得分:0)

试试这个:

storyboard.gotoScene("facebook", {effect = "fade", time=400})

或者:

local options =
{
    effect = "fade",
    time = 400,
}

storyboard.gotoScene("facebook", options)

http://docs.coronalabs.com/api/library/storyboard/gotoScene.html

答案 2 :(得分:0)

当你打电话给一个场景'脸书''或者将facebook重命名为'postmyscore'并且它有效时,看起来电晕不喜欢它

答案 3 :(得分:0)

自从Coronas上次更新以来,我遇到了同样的问题。我通过删除事件阶段的if检查来解决问题。只需在你的监听器函数中注释event.phase:

function listener(event) 
--if event.phase == "began" then
    print(event.name.." occurred") 
    storyboard.gotoScene("facebook", "fade", 400)
end

答案 4 :(得分:0)

facebook.lua已经集成在inbuild API中,所以它可能会产生问题,更多的是你使用tap事件,因此在监听器中无需检查阶段或者你可以使用触摸事件。