0

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

5 回答 5

1

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

要么改变这两行:

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
于 2013-02-25T01:17:39.257 回答
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

于 2013-02-26T21:14:53.593 回答
0

当您将场景称为“facebook”或将 facebook 重命名为“postmyscore”时,看起来电晕不喜欢它并且它可以工作

于 2013-02-26T21:34:47.410 回答
0

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

function listener(event) 
--if event.phase == "began" then
    print(event.name.." occurred") 
    storyboard.gotoScene("facebook", "fade", 400)
end
于 2013-04-19T16:17:39.570 回答
0

facebook.lua 已经集成在 inbuild API 中,所以它可能会产生问题,更多的是你使用的是点击事件,所以在监听器中不需要检查相位或者你可以使用触摸事件。

于 2013-05-31T12:23:48.490 回答