2013-04-25 3 views
0

MovieClip을 제거하려고하는데 매개 변수 하위가 null이 아니어야합니다. FLASH/AS3 : 아이를 제거하는 중에 오류가 발생했습니다. 매개 변수 자식이 null이 아니어야합니다.

이 내 스크립트

:

무대에서 그것을 확인하려면, 내가 사용

function sayam (e:MouseEvent):void{ 
    nilai = 8; 
    if(nilai == temp) { 
    var ssAyam:ayam_mc = new ayam_mc 
    stage.addChild(ssAyam); 
    ssAyam.x = 350.0; 
    ssAyam.y = 330.0; 
    ssAyam.width = 170.0; 
    ssAyam.height = 170.0; 
    ssAyam.instanceName = "Ayam"; 
    arnam.push("Ayam"); 
    trace("arnam" +arnam); 
    trace(ssAyam.instanceName); 
    jual = jual + 4000; 
    temp = val[len-(len-len2)] 
    len2 = len2 + 1; 
    } else { 
      money = money - 4000; 

     } 

    } 

그래서, 내가 무대에 표시하고 배열로 밀어 (8 개) 동영상 클립을 8 개 기능을했다. 배열은 "arnam"입니다.

function deleteBurger() { 
       for(var i:Number=arnam.length; i >= 0; i--){ 
         removeChild(arnam[i]); 
         arnam.splice(i,1); 
       } 
      } 

내 배열을 추적 한, 그것이 null되지 않습니다 :

는이 내 제거 코드입니다.

아무도 도와 줄 수 있습니까? 고마워요 :)

답변

1

이 배열의 길이를 기반으로 루프에서 배열을 수정하면 안되며, 동작은 예측할 수 없습니다. 이제

while(arnam.length) 
{ 
    removeChild(arnam.pop()); 
} 

, 나는의 Vector을 사용 :

for each(var child:Sprite in arnam){ 
    stage.removeChild(child); 
} 
arnam = []; 
+0

제공된 DisplayObject는 호출자의 자식이어야합니다. – user2319113

+0

어쩌면 무대에 올 수 없을 것입니다. stage.removeChild – Kodiak

+0

와우! 그것은 작동합니다! 대단히 감사합니다! 나는 이것을 위해 1 주를 보냈다! – user2319113

0

내가 그렇게으로이

for(var i:int=arnam.length-1; i >= 0; i--){ 
         removeChild(arnam[i]); 
         arnam.splice(i,1); 

       } 
+0

발신자가 – user2319113

+0

인 경우 오류가 DisplayObject가 자식이어야 함 arnam [i]를 제거하기 전에 arnam [i] .parent를 추적하여 추가 된 위치를 알 수 있습니다. trace ("arnam ["] + i + "]. parent ="+ arnam [i] .parent); – moosefetcher

2

내가 배열을 제로로하고 구성원을 조작하기 위해이 작업을 수행하고자 시도 MovieClip은 배열이 아닌 강하게 입력합니다. 또한 contains()를 사용하여 무비 클립이 제거되기 전에 무비 클립에 있는지 확인하십시오.

+0

동일합니다. 제공된 DisplayObject는 호출자 – user2319113

+0

의 자식이어야합니다. 그러면 MovieClip의 부모를 가져와 remove()를 호출해야합니다. 모든 DisplayObject에 .parent 속성이 있습니다. http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/DisplayObject.html#parent –