발신자 오류의 자식이어야하는 RemoveChild, 여기에 내가 내가 텍스트 추가 기능을 삭제 한AS3이 제공되는 DisplayObject입니다 내가 문제가 생겼어요
public var monsterArray:Array;
public var score:Number;
public function MonsterManager()
{
score = 0;
monsterArray = new Array();
}
public function spawnMonster(waveNumber:Number):void
{
//This code needs to choose the ID not the monster itself
var id:Number;
var meleeRanged = Math.floor(Math.random()*2)
trace("meleeRanged :"+meleeRanged);
id = Math.floor(Math.random()*3)+1;
switch(id)
{
case 1: var newMonster1:Monster1 = new Monster1();
newMonster1.monsterSetup(waveNumber, id);
monsterArray.push(newMonster1);
addChild(newMonster1);
break;
}
}
public function update():void
{
//trace("Go To Update");
var i:number;
i = 0;
for each (var monster:Monster in monsterArray)
//monster needs a bool variable to say if it is active, if it is dont reuse,
//if it is not activate, we can use setup and re use it,
{
monster.update();
if(monster.hp <= 0)
{
score += 10;
removeChild(monster);
array.splice(i,1);
//monster.x = -1000;
//monster.hp = 1;
i++;
}
}
}
을 사용하고 코드입니다 t는 문제 : 원인,하지만 난이 removeText 기능 APON 호출 할 때, 나는 순식간에이 오류가
The supplied DisplayObject must be a child of the caller.
배열 공개, 그래서 내가 할 수 누군가가 삭제 될 수없는 이유를 잘 모르겠어요 이것 좀 좀 보여 줘.
건배.
public function update(heroGra:HeroDisplay):void
{
//trace("Go To Update");
var count:Number = monsterArray.length;
var monster:Monster;
for(var i:int = 0; i<count; i++)
{
monster = monsterArray[i];
monster.update(heroGra);
if(monster.hp <= 0)
{
score += 10;
removeChild(monster);
monsterArray.splice(i,1);
i--;
}
}
}
캔버스 아래
새로운 코드입니다.
monsterArray에 2 개 이상의 몬스터가 있으면 오류가 발생합니다. 어떻게 멈추게 할 수 있습니까?
'removeChild()'는 스테이지에서 무언가를 제거하는 데 사용됩니다 (예 : 볼 수있는 화면상의 것). 이전에 추가하지 않은 것을 제거 할 수 없습니다 (addChild()를 사용하여 무언가를 추가했습니다). 배열이나 무대에서 무언가를 제거하려고합니까? :) 더 많은 코드를 표시 할 수 있습니다. –