2012-01-19 84 views
0

我一直在尋找一個小時回答:AS3 removeChild之的addChild問題/錯誤

我的程序:

步驟I)當我點擊一個按鈕,它會顯示通過的addChild位圖; 第二步)當我點擊另一個按鈕時,它應該通過removechild刪除位圖;

步驟1)完美地工作,但步驟2)不起作用。

你會發現下面的我的代碼一些地方:

首先,我聲明:

public var ajoutcarte4:MovieClip; 

其次,在主函數中我寫道:

var ajoutcarte4:Bitmap = new Bitmap(); 

然後,在由第一個按鈕觸發的子函數,我將位圖添加到舞臺(fl_bitmap是一個返回位圖項目的函數):

ajoutcarte4 = fl_bitmap(couleur4+figure4); 
ajoutcarte4.x=445; 
ajoutcarte4.y=370; 
addChild(ajoutcarte4); 

到目前爲止好,但是當我想通過第二個按鈕觸發另一個子功能刪除的子:

removeChild(ajoutcarte4); 

它不起作用,因爲ajoutecarte4顯然是空...錯誤2007時我得到紅色的我的病情......

回答

0

你已經宣佈 ajoutcarte4類型影片剪輯,但後來在你的函數,你聲明局部變量 ajoutcarte4類型位圖,然後將其添加到階段。

在第二個函數中,您嘗試刪除字段 MovieClip,它從來沒有被實例化 - 並因此產生錯誤。

你的宣言改成這樣:

public var ajoutcarte4:Bitmap; 

,並呼籲:

ajoutcarte4 = new Bitmap(); 

(不var)。那麼這一切都應該正常工作。

+0

非常感謝你!!!!完美的作品。你救了我的命:) :) – user1157439 2012-01-19 08:44:26

1

變化這

public var ajoutcarte4:MovieClip; 

public var ajoutcarte4:Bitmap; 


然後取出該行完全

var ajoutcarte4:Bitmap = new Bitmap(); 


而lastely

// add this like with this code 
ajoutcarte4 = new bitMap() 
ajoutcarte4 = fl_bitmap(couleur4+figure4); 
ajoutcarte4.x=445; 
ajoutcarte4.y=370; 
addChild(ajoutcarte4); 
+0

非常感謝:))))))) – user1157439 2012-01-19 08:44:42