2012-02-22 91 views
1

我是Corona SDK的初學者。 我有2個場景A & B.使用故事板似乎禁用觸摸事件?

在場景中我有一個OnRelease事件按鈕。 此按鈕已創建並添加到場景創建事件中的組中。 點擊按鈕將我帶到場景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 
+0

是的,你應該提供代碼片段 – cctan 2012-02-23 08:30:30

回答

0

從我看到here

enterScene

時storyboard.gotoScene()被調用調度, 過渡後立即已完成。因此,如果您指定了過渡效果, 只要效果結束,就會分派此事件。添加 聽衆,或應用程序/遊戲特定的邏輯應放置在此事件的聽衆 函數中。

exitScene

當storyboard.gotoScene()被調用時,一個「exitScene」事件將是 的過渡發生之前分派到當前顯示的場景。 清理任務,如刪除事件偵聽器,停止定時器, 等應放置在此事件的偵聽器函數中。

添加事件偵聽器enterScene()事件,而不是createScene()exitScene()刪除它們?

編輯:我想你需要display.getCurrentStage():setFocus(nil)exitScene()