2012-02-16 2 views
0

저는 플래시로 게임을 만들고 배열을 사용하여 항목을 동적으로 만들고 인벤토리에 배치했습니다. 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. 
    } 
} 

, 당신이 어딘가에 더 나은 비교를 위해 각 인스턴스에 대한 참조를 유지 할 수 있습니다 : 같은

+0

간단한 숫자 대신 상수를 사용하는 것을 고려하십시오. 싱글 톤은 "게임의 현재 상태"값을 갖는 데 도움이 될 수 있습니다. –

답변

1

보십시오 뭔가.

+0

매력처럼 작동했습니다! 감사합니다.] – Neverlax

+0

문제가 해결되면 대답을 수락해야합니다. :) – Bakapii

관련 문제