按钮转到场景不工作



如果我点击按钮,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

"tap"事件和"touch"事件不同,它们获得传递给事件处理程序的不同"阶段"。按照事件处理程序的编程方式,您期望的是"触摸"事件(开始、结束、移动(。无论你是否被窃听,窃听事件都不会真正产生任何阶段。

要么改变这两条线:

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

至:

button:addEventListener( "touch", listener ) 

button:removeEventListener( "touch", listener ) 

或者您可以将您的listner更改为:

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

试试这个:

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

当你将场景称为"facebook"或将facebook重命名为"postmyscore"时,corona似乎不喜欢它,并且它可以

自从Coronas上次更新以来,我也遇到了同样的问题。我通过删除事件阶段的if检查来解决这个问题。只需注释掉事件即可。在侦听器函数中进行相位检查:

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

facebook.lua已经集成在内置API中,因此它可能会产生问题,更多的是因为您正在使用tap事件,所以在监听器中不需要检查阶段,或者您可以使用touch事件。

最新更新