2013-06-12 2 views
0

무대에서 인스턴스를 제거하는 데 문제가 있습니다.무대에서 인스턴스를 모두 제거합니다.

내가

누군가가 이것 좀 도와 드릴까요 "제공된으로 DisplayObject는 호출자의 자식이어야합니다"하는 버튼을 2 번을 클릭하면 점점 계속 오류?

package src 
{ 
import flash.display.MovieClip; 
import flash.display.Stage; 
import flash.events.Event; 
import flash.events.MouseEvent; 

public class Main extends MovieClip 
{ 
    var positionY:Number = 80; 
    var positionX:Number = 0; 
    var motion:MovieClip; 
    var fCombo:Array = new Array(); 
    var n:Number; 

public function Main() 
{ 
    generate.addEventListener(MouseEvent.MOUSE_UP, loop); 
    generate.addEventListener(MouseEvent.MOUSE_DOWN, remove); 
    n = Number(inputText.text); 
} 
function loop(me:MouseEvent):void 
{ 
    var combo:Array = [Punch, Kick, Knee, Elbow]; 
    n = Number(inputText.text); 
    for(var i:Number = 0;i < n;i++) 
     { 
     motion = new combo[randomNumber(4)](); 
     fCombo.push(motion); 
     motion.y = positionY; 
     motion.x = positionX; 
     positionX += 100; 
     addChild(motion); 
      if (i == 4 || i == 9 || i == 14) 
       { 
        positionY += 40; 
        positionX = 0; 
       } 
     } 
} 
function remove(me:MouseEvent):void 
{ 
    for (var j:Number = 0; j < n; j++) 
    { 
     removeChild(fCombo[j]);//error 
    } 
    positionY = 80; 
    positionX = 0; 
} 

function randomNumber(max:Number):Number 
    { 
    return(Math.floor(Math.random() * max)); 
    } 
} 

}

+0

'removeChild (fCombo [j]); // error'에서'j'는 어디에서 왔습니까? 초기화되지 않은 것 같습니다. – package

+0

그리고 정확히 무엇을하려고합니까? 마지막으로 추가 한 콤보를 디스플레이에서 제거 하시겠습니까? 현재 클릭 된 콤보를 디스플레이에서 제거 하시겠습니까? – package

+0

opps, 편집했습니다. –

답변

1

당신은 당신이 배열에 만든 새 개체를 추가하고 제거하는 것을 사용하고 있습니다. 그러나 새 목록을 만들거나 이전 목록에서 개체를 제거하는 것을 잊고 있습니다. 따라서 목록 위에 반복문이 생기면 이미 제거 된 객체를 제거하려고합니다.

여러 가지 방법으로이 문제를 해결할 수 있습니다, 하나는 당신의 루프에서 무대와 배열에서 개체를 제거하는 것입니다

function remove(me:MouseEvent):void 
{ 
    while(fCombo.length) 
    { 
     removeChild(fCombo.pop()); 
    } 
    positionY = 80; 
    positionX = 0; 
} 
0

targetDisplayObject.parent.removeChild (targetDisplayObject); 부모가 null이 아니라고 가정하고 트릭을 수행합니다.

관련 문제