2014-04-08 54 views
0

我知道我需要將場景中的所有顯示對象放入組視圖中。Corona storyboard將方法添加到方法外部的[self.view]

但我需要準備動態顯示視圖和遠景深功能[不是直接從scene:createScene叫,scene:enterScene等]

所以,我試圖使self.view的全球參考,但它並沒有幫助。這裏是我的代碼片段:

-- reference all variable 
local globalSceneObj 

function scene:createScene(event) 
    print ("scene:createScene") 
    local group=self.view 
    globalSceneObj=group 
    .. 
    .. 
end 


function enterObject() 
     .. 
     .. 
    currentFlyingObj=display.newImage(globalSceneObj,FLYING_OBJECTS[num][1],display.contentWidth,_H/2) 
     .. 
     .. 
end 

但是這段代碼並不能幫助我的遊戲崩潰當我訪問這個屏幕的第二次。有沒有其他方法可以獲取Storyboard組視圖的參考?

+0

你是否正在清除過渡之間的場景?如果是的話,視圖將被破壞 –

+0

首先,這是全球引用一個正確的方法?是的,我正在清理場景:destroyscene函數 – user1991

+1

你可以嘗試使用getCurrentStage()並從該視圖獲取視圖,而不是使用全局變量https://docs.coronalabs.com/api/library/display/getCurrentStage.html –

回答

0

試試這個辦法,

--refrence所有變量 本地globalSceneObj

function scene:createScene(event) 
print ("scene:createScene") 
local group=self.view 
scene._globalSceneObj = group 
.. 
.. 
end 



function enterObject() 
    .. 
    .. 
currentFlyingObj=display.newImageRect(FLYING_OBJECTS[num] [1],display.contentWidth,_H/2) 
scene._globalSceneObj:insert(currentFlyingObj) 
    .. 
    .. 
end 

並確保在移動到其他場景要刪除當前場景和所有您要取消所有定時器使用timer.cancel(timername),並在您使用它們時刪除偵聽器。