按钮gotoScene不起作用。

如果我点击按钮,storyboard.gotoScene ("facebook", "fade", 400) 没有起作用,并且终端中没有任何错误消息。我做错了什么?

点赞
用户1870706
用户1870706

"tap" 事件和 "touch" 事件是不同的,它们传递给事件处理程序的 "phases" 也不同。你的事件处理程序的编程方式是,你期望 "touch" 事件(开始、结束、移动)。tap 事件实际上不会生成任何阶段,你要么被轻敲了,要么没有。

要么更改这两行:

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
2013-02-25 01:17:39
用户1879694
用户1879694

尝试这样做:

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

2013-02-26 21:14:53
用户1993254
用户1993254

看起来 Corona 不喜欢将场景命名为“facebook”,或者将其重命名为“postmyscore”就可以运行。

2013-02-26 21:34:47
用户2299956
用户2299956

我自从 Corona 最近的更新后也遇到了同样的问题。我通过移除事件阶段的 if 检查来解决了这个问题。在你的监听函数中注释掉 event.phase 的检查即可:

function listener(event)
--if event.phase == "began" then
    print(event.name.." occurred")
    storyboard.gotoScene("facebook", "fade", 400)
end
2013-04-19 16:17:39
用户1514524
用户1514524

facebook.lua 已经整合进了内置 API,所以它可能会产生问题。另外,您正在使用 tap 事件,因此在监听器中无需检查阶段,或者您可以使用 touch 事件。

2013-05-31 12:23:48