2010-05-10 4 views
3

저는 초보자입니다.이 주제에 대해 몇 주 동안 검색하고 시도했지만,이 문제를 해결할 수는 없습니다. 아래의 간단한 코드는 "제공된 DisplayObject가 호출자의 자식이어야합니다"라는 오류를 제공합니다.제공된 DisplayObject는 발신자의 자식이어야합니다.

var square = new squareObj; 
addChild(square); 
addEventListener(Event.ENTER_FRAME, removeSquare); 

function removeSquare(evt:Event):void { 
    removeChild(square) 
} 

squareObj는 AS 용으로 내보내는 라이브러리의 동영상 클립입니다. 이 코드를 올바르게 작동 시키려면 어떻게 변경해야합니까? 나는 적절한 지식이 부족하다고 생각합니다. 문제에 관한 좋은 자습서 링크는 인정됩니다.

안부 H

답변

6

문제는 입력 프레임 수신기가 또 다시 호출되고 있다는 점이다. 처음으로 DisplayObject를 호출하면 실제로 호출자의 자식이되지만 이후에는 제거되지 않으므로 호출자의 자식이됩니다.

그래서 나는 당신이 제안 :

var square = new squareObj; 
addChild(square); 
addEventListener(Event.ENTER_FRAME, removeSquare); 

function removeSquare(evt:Event):void { 
    if (contains(square)) { 
     removeChild(square) 
    } 
} 

중 하나는 당신이 이벤트를 필요 여부에 따라, 이벤트 리스너를 사각형이 실제로 this

var square = new squareObj; 
addChild(square); 
addEventListener(Event.ENTER_FRAME, removeSquare); 

function removeSquare(evt:Event):void { 
    removeEventListener(Event.ENTER_FRAME, removeSquare) 
    removeChild(square) 
} 

의 자식인지 확인하거나 제거 광장을 제거하는 것 이외의 다른 것을 위해. 또한 그것이 추가 된 후 꽤 빨리 제거되기 때문에 아마도 사각형이 전혀 보이지 않을 것임을 명심해야합니다.

관련 문제