2009-11-17 47 views
2

非常基本的問題在這裏,但它仍然讓我很困惑..通過代碼刪除形狀

我有一個對象(導航菜單欄),我想改變的代碼的顏色,所以在updateColor函數,我得到了對象的邊界(這是一個包含在動畫片段中的繪圖形狀),並用新顏色重新繪製了一個新形狀,但是我注意到最後一個形狀仍然存在於此重繪之後。

我試圖在重繪之前使用obj.graphics.clear();,但沒有擺脫原來的形狀。是否有另一個我忽略的命令?

回答

0

除非您在同一圖形對象中繪製了想要刪除的對象,否則清除將不起作用。您需要刪除DisplayObject。

根據孩子的數量,你可以這樣做:

obj.removeChildAt(0); 

這也將刪除影片剪輯/手動放置在舞臺上的按鈕。 如果您要刪除的DisplayObject的引用,你可以簡單地做

obj.removeChild(backgroundClip); 

請注意,您也可以直接改變DisplayObject的顏色:

import flash.geom.ColorTransform; 
... 
public var test:MovieClip; //instance on stage 
... 

var cf:ColorTransform = test.transform.colorTransform; 
cf.color = 0xff0000; 
test.transform.colorTransform = cf; 
0
while(this.numChildren) 
{ 
    this.removeChildAt(0); 
} 

將清除的孩子如果它清除太多,則將該形狀圖放入子剪輯中,並清除子剪輯。