使用故事板似乎禁用触摸事件?

时间:2012-02-22 10:39:14

标签: corona

我是Corona SDK的初学者。 我有2个场景A&乙

在场景A中,我有一个带有OnRelease事件的按钮。 此按钮已创建并添加到场景Create事件中的组中。 单击该按钮将我带到场景B(storyboard.gotoScene(“B”))。

在场景B中,我在盒子上有一个触摸事件(板条箱图像)。 触摸侦听器添加在场景已启动事件中,并在场景退出事件中删除。 点击箱子将我带回A(storyboard.gotoScene(“A”))。

所以这是真正讨厌的问题: 返回A后,此场景中的所有事件现在都被禁用。 即我不能再点击按钮(无事件)。

如果我缺少上述信息,将提供代码段。 谢谢。

*更新*

在休息了一段时间后,我今天回去了,又开始调试了。我很快就找到了这个问题。这个问题与我触摸的事件处理程序有关(导致从场景B到A的转换)。

下面的

片段导致了这个问题:

function testTouched( event )

-- process cue-touched event...
--local t = event.target -- commenting this was the fix.
local phase = event.phase

if "began" == phase then

        print("     -> back to menu")
        --display.getCurrentStage():setFocus( t ) -- commenting this was the fix.
        --t.isFocus = true -- commenting this was the fix.
        storyboard.gotoScene( "menu", "flipFadeOutIn", 500 )

end

-- Stop further propagation of touch event
return true

1 个答案:

答案 0 :(得分:0)

从我看到here

  

enterScene

     

在调用storyboard.gotoScene()之后立即调度   过渡已经完成。所以,如果你指定了过渡效果,   效果结束后立即调度此事件。添加   应将侦听器或app / game特定逻辑放在侦听器中   这个事件的功能。

     

exitScene

     

当调用storyboard.gotoScene()时,将出现“exitScene”事件   在转换发生之前调度到当前显示的场景。   清除职责,例如删除事件监听器,停止计时器,   应该放在此事件的监听器函数中。

enterScene()事件而不是createScene()中添加事件侦听器,并在exitScene()删除它们?

修改:我认为您需要display.getCurrentStage():setFocus(nil)中的exitScene()