2010-09-18 72 views
0

好吧,我不知道爲什麼會發生這種情況。動態製作的雪碧物體底部有邊緣/填充

我做了一個Item類,它擴展了Sprite類,Item類基本上有幾個複選標記&此刻。

然後我試圖做的是通過項目的循環運行並創建項目類,我想在Y軸上放置一個接一個,所以我正在閱讀Item.height屬性來查找y列表中的下一個項目。

問題是由於某種原因,總有一個額外的75像素增加到底部的雪碧高度,無論每個Item類中有多少個選中標記和標籤(改變Item類的高度)。

任何想法爲什麼這是被添加以及它如何被刪除?

我很難搞清楚這一點,我嘗試動態計算和設置Item.height屬性,但是當我這樣做時,Sprite只是裁剪。

回答

1

它需要一兩幀,直到正確設置UI組件的大小(默認高度爲100像素)。

要防止此行爲,請在所添加的每個Flash UI組件上調用validateNow()

var s:Sprite = new Sprite(); 
var label:Label = new Label(); 
label.text = "hello"; 
label.x = 0; 
s.addChild(label); 
var check:CheckBox = new CheckBox(); 
check.label = "hello"; 
check.x = 50; 
s.addChild(check); 
addChild(s); 
trace(s.height); // output: 100 

label.validateNow(); 
check.validateNow(); 
trace(s.height); // output: 28 
+0

謝謝,這是你獲得的經驗類型。 – 2010-09-18 16:51:13