2012-05-06 20 views
0

花了幾個小時試圖在這裏找出故事板問題。我已經修剪了一個示例項目來複制它。故事板 - 多場景enterScene/existScene發生 - 這段代碼有什麼問題?

問題:

  • 從現場1去,場景2,然後回到場景1,然後通過場景切換了幾次後,我得到如下:
  • 當進入一個場景記錄顯示多個enterScene/exitScene被觸發
  • 似乎通過也許多個背景觸摸監聽器正在註冊,但我試圖刪除這些在exitScene函數
  • 我在試用版:2011.704(2011.12 .8)

輸出

<code> 
-- Click on background to go back to screen_example1 

storyboard.gotoScene(screen_example1) 
screen_example1: enterScene 

storyboard.gotoScene(screen_example1) 
screen_example1: exitScene 
screen_example1: enterScene 

storyboard.gotoScene(screen_example1) 
screen_example1: exitScene 
screen_example1: enterScene 

storyboard.gotoScene(screen_example1) 
screen_example1: exitScene 
screen_example1: enterScene 

. 
. 
. 
etc 
</code> 

代碼:三個文件:主要和兩個場景文件:

main.lua

<code> 
display.setStatusBar(display.HiddenStatusBar) 
local storyboard = require "storyboard" 
storyboard.gotoScene("screen_example1") 
</code> 

screen_example1.lua

<code> 
local storyboard = require("storyboard") 
local scene = storyboard.newScene() 

local function onScreenTouch(event) 
    if event.phase == "began" then 
     print("") 
     storyboard.gotoScene("scene_towerView") 
    end 
end 


function scene:createScene(event) 
    print ("screen_example1 - createScene") 
    local image = display.newImage("bg.jpg") 
    scene.view:insert(image) 
end 

function scene:enterScene(event) 
    print ("screen_example1: enterScene") 
    scene.view:addEventListener("touch", onScreenTouch) 
end 

function scene:exitScene(event) 
    print ("screen_example1: exitScene") 
    scene.view:removeEventListener("touch", onScreenTouch) 
end 

-- Scene Listeners 
scene:addEventListener("createScene", scene) 
scene:addEventListener("enterScene", scene) 
scene:addEventListener("exitScene", scene) 
scene:addEventListener("destroyScene", scene) 


return scene 
</code> 

個scene_towerView.lua

<code> 
local storyboard = require("storyboard") 
local scene = storyboard.newScene() 

local function onScreenTouch(event) 
    if event.phase == "began" then 
     print("") 
     print("storyboard.gotoScene(screen_example1)") 
     storyboard.gotoScene("screen_example1") 
    end 
end 

-- Scene Handlers 

function scene:createScene(event) 
    print ("TowerScene - createScene") 

    -- -- Background Image 
    local image = display.newImage("bg2.jpg") 
    scene.view:insert(image) 
end 

function scene:enterScene(event) 
    print ("TowerScene - enterScene") 
    scene.view:addEventListener("touch", onScreenTouch) 
end 

-- Scene Listeners 
scene:addEventListener("createScene", scene) 
scene:addEventListener("enterScene", scene) 
scene:addEventListener("exitScene", scene) 
scene:addEventListener("destroyScene", scene) 

return scene 
</code> 
+0

PS。這個問題是因爲我在試用版嗎?試用版比目前的穩定版本早得多嗎?任何最新的穩定版本都會得到我得到的同樣的錯誤? 我打算按照你準備好提交時可以支付的訂閱費用,但是如果試用版本在獲取隱藏方面落後了,那麼我現在就可以拿到它了。 – Greg

回答

1

你嘗試加入的觸摸事件代碼的結尾「返回true」?這讓我難住了最長的時間。

Different layers in Corona/Lua

ķ

+0

自從我遇到這個問題以來已經有一段時間了 - 我不太記得我的代碼中是否存在錯誤,或者是否訂閱並移動到最近的每日構建中 – Greg