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