2012-02-22 3 views
1

私はコロナSDKの初心者です。 私は2つのシーンA &を持っています。ストーリーボードを使用するとタッチイベントが無効になっているようですか?

シーンAには、OnReleaseイベントのあるボタンがあります。 このボタンが作成され、シーン作成イベントのグループに追加されます。 ボタンをクリックすると、シーンB(storyboard.gotoScene( "B"))に移動します。

シーンBでは、ボックス(クレート画像)にタッチイベントがあります。 タッチリスナーがシーンStartedイベントに追加され、シーンExitedイベントで削除されました。 木箱をクリックすると、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

答えて

0

私はstoryboard.gotoSceneは()の移行直後に た後、呼び出されたときに送出さhere

enterScene

を見たものから、完了しました。したがって、トランジションエフェクトを指定した場合は、 エフェクトが終了するとすぐにこのイベントが送出されます。 リスナーを追加するか、このイベントのリスナー 関数にアプリケーション/ゲーム固有のロジックを配置する必要があります。

exitScene

storyboard.gotoScene()が呼び出されると、「exitScene」イベントは、遷移が発生する前 現在示さ現場に急派されます。 このイベントのリスナー関数には、イベントリスナーの削除、タイマーの停止、 などのクリーンアップの任務を配置する必要があります。

というよりも、createScene()enterScene()イベントにイベントリスナーを追加し、exitScene()でそれらを削除しますか?

display.getCurrentStage():setFocus(nil)exitScene()に設定する必要があります。

関連する問題