2014-01-28 19 views
0

下面的代碼示例來自單個故事板場景。放大鏡(mg),綠色圓圈(asset1),返回按鈕和動畫船(船)都會在展開時添加到場景的顯示組中。在此期間,船舶也會再次移除display.remove(ship)。 這一切在第一次創建場景時都可以正常工作,但是,當我單擊返回按鈕,進行場景更改並返回到此場景時,代碼嘗試將該船添加到顯示組時失敗:「嘗試調用方法'插入'(一個零值)「爲什麼group:在故事板場景更改後插入失敗?

什麼給?

local storyboard = require ("storyboard") 
    local widget = require ("widget") 
    local scene = storyboard.newScene() 
    storyboard.purgeOnSceneChange = true 

    function scene:createScene(event) 
     local group=self.view 
     local asset1x = 600 
     local asset1y = 400 

    -- MAGNIFYING GLASS 
     local mg=display.newImage("images/mg.jpg") 
     mg.x=600 
     mg.y=150 
     mg.myName = "mg" 
     physics.addBody(mg,"dynamic", { density = 1.0, friction = 0.3, bounce = 0.2, radius = mgRadius})  
     group:insert(mg)    

    -- ASSET PLANT 
     local asset1 = display.newCircle(asset1x,asset1y,30) 
     asset1:setFillColor(100,200,300) 
     physics.addBody(asset1,"static") 
     asset1.myName = "asset1" 
     asset1.isSensor = true 
     asset1.isVisible = false 
     group:insert(mg) 

     asset1.collision = function(self,event) 
      if (event.phase == "began" and event.other.myName == "mg") then 
       print("began") 
       ship=display.newSprite(shipSheet, shipSeqData) 
       ship:play() 
       ship:scale(2,2) 
       ship.x=asset1x 
       ship.y=asset1y 
       ship.myName = "ship" 
       group:insert(ship) 
      elseif (event.phase == "ended" and event.other.myName == "mg") then 
       print("ended") 
       display.remove(ship) 
      end 
     end 
     asset1:addEventListener("collision") 

    -- RETURN BUTTON 
     local function returnWelcome(event) 
      storyboard.gotoScene("000","fade", 600) 
     end 
     local returnButton = widget.newButton 
     { 
      left=900, 
      top=385, 
      width=300, 
      height=225, 
      defaultFile="images/bg000.jpg", 
      onRelease=returnWelcome, 
     } 
     group:insert(returnButton) 

    end 

    scene:addEventListener("createScene", scene) 

    return scene 

回答

1

事實證明,我不小心將mg顯示對象添加到顯示組兩次,並從未添加asset1 - 這不知何故導致了錯誤。

相關問題