2013-02-09 97 views
0

我創建一個簡單的遊戲,當物體擊中了一枚硬幣,然後將比分遞增,硬幣會消失被擊中後.....AS3 - 刪除對象被另一個對象

我有這個代碼中,food1是被擊中後會消失的那個,scoreOutput是動態文本的實例名稱。

if(player.hitTestObject(food1)){ 
    removeChild(food1); 
    score += 10; 
    scoreOutput.text = String(score); 
} 

我得到這個錯誤

ArgumentError: Error #2025: The supplied DisplayObject must be a child of the caller. 
at flash.display::DisplayObjectContainer/removeChild() 
at game_fla::MainTimeline/moveObject() 

也許是因爲我使用的刪除孩子,但我真的沒有對如何從舞臺刪除對象,因爲我不是熟悉actionscripting的想法.. 。

任何有關我該怎麼做的建議?提前致謝。

+0

food1在哪裏添加了?在舞臺上?對? – 2013-02-09 06:54:08

+0

嘗試:food1.parent.removeChild(food1);你嘗試刪除的元素不是孩子的「this」,在這種情況下,時間線本身 – philipp 2013-02-09 06:54:50

+0

@ bitmapdata.com是的....我把它放在遊戲開始之前 – Katherine 2013-02-09 06:58:56

回答

2

我想,你是如果阻止多個呼叫。任何原因。

所以,改一個這個代碼。

if(player.hitTestObject(food1)) 
{ 
    if(stage.contains(food1)) 
     removeChild(food1); 

    score += 10; 
    scoreOutput.text = String(score); 
} 

並檢查一下完整的代碼。

+0

謝謝,這段代碼工作後,我把剩下的代碼括在大括號中,如果(stage.contains(food1))....謝謝你:) – Katherine 2013-02-09 07:29:23

+0

@凱瑟琳如何解決這個問題...請幫助 – 2015-02-21 05:13:49