2014-04-08 4 views
0

내 장면의 모든 표시 객체를 그룹 뷰에 배치해야한다는 것을 알고 있습니다.코로나 스토리 보드는 메서드 외부의 [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 

이 코드는 도움이되지 않으며이 화면을 다시 방문하면 게임이 중단됩니다. 스토리 보드 그룹보기에 대한 참조를 얻는 다른 방법이 있습니까?

+0

전환 사이에서 장면을 제거하고 있습니까? 그렇다면 뷰가 파괴 될 것입니다 –

+0

첫째,이 글로벌이 올바른 방법을 참조합니까? 네 장면에 대한 장면을 없애고 있습니다. destroyscene 함수 – user1991

+1

getCurrentStage()를 사용하여 전역 변수 대신보기를 가져올 수 있습니다. https://docs.coronalabs.com/api/library/display/getCurrentStage.html –

답변

0

이 방법을 시도, 모든 변수 지역 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 

--refrence

그리고 사용하면 현재 장면을 제거하고 모든 모든 타이머를 취소하는 다른 현장으로 이동하면서 확인 timer.cancel (timername) 및이를 사용하는 경우 리스너를 제거하십시오.