저는 플래시로 게임을 만들고 배열을 사용하여 항목을 동적으로 만들고 인벤토리에 배치했습니다. LongSword는 MovieClip입니다. 그래서 같은 배열의 무비 클립을 배치 : AS3 : 배열을 통해 스테이지에 생성 및 배치 된 MovieClip을 제거하는 방법은 무엇입니까?
function buyitem1(e:Event):void
{
if(Store.itemslot.length < 6 && Store.currentMenu == 1 &&score >= 450)
{
Store.itemslot.push(new LongSword);
}
}
는 지금은 롱소드는 "판매"할 때 무대에서 영화 클립을 제거하기 위해 노력하고있어. 이 롱소드는 어떻게 제거 할 수 있습니까? 나는 시도했다 : 필자는 시도
for(var i:int = 0; i < Store.itemslot.length; i++)
{
if(Store.itemslot[i] == LongSword)
{
stage.removeChild(Store.itemslot[0]);
}
}
:
for(var i:int = 0; i < Store.itemslot.length; i++)
{
if(Store.itemslot[i] == new LongSword)
{
stage.removeChild(Store.itemslot);
}
}
여러 변화를. 어떤 아이디어? 롱소드의 여러 인스턴스가 배열에있는 경우
for each(var i:MovieClip in Store.itemslot)
{
if(i is Longsword)
{
var n:int = Store.itemslot.indexOf(i);
Store.itemslot.splice(n, 1);
if(i.parent) i.parent.removeChild(i);
break; // Only remove one Longsword.
}
}
, 당신이 어딘가에 더 나은 비교를 위해 각 인스턴스에 대한 참조를 유지 할 수 있습니다 : 같은
간단한 숫자 대신 상수를 사용하는 것을 고려하십시오. 싱글 톤은 "게임의 현재 상태"값을 갖는 데 도움이 될 수 있습니다. –