0
我有一個類稱爲集裝箱延伸雪碧和手動添加設置寬度的能力和高度,以將scaleX和scaleY始終保持1Flash如何根據子元素計算DisplayObject的尺寸?
我已經把這樣的類變成一個精靈,發現精靈措施本身內部計算,實際上並沒有從getters獲得寬度/高度。
什麼是這個數學,我該如何擴展它來強制Sprite在考慮我的擴展寬度和高度的同時採取其內部措施?
我有一個類稱爲集裝箱延伸雪碧和手動添加設置寬度的能力和高度,以將scaleX和scaleY始終保持1Flash如何根據子元素計算DisplayObject的尺寸?
我已經把這樣的類變成一個精靈,發現精靈措施本身內部計算,實際上並沒有從getters獲得寬度/高度。
什麼是這個數學,我該如何擴展它來強制Sprite在考慮我的擴展寬度和高度的同時採取其內部措施?
該算法位於getBoundary()
函數中,該函數針對所有子元素和其自身圖形調用,以確定整個精靈顯示列表邊緣的座標。這就是爲什麼設置寬度而不進行縮放可能沒有用處。但是如果你仍然希望這樣做,首先創建包含設置寬度和高度信息的字段,這些信息將在container.width
和container.height
賦值中更新,然後還覆蓋寬度和高度的getters,返回存儲的寬度和高度的最大值以及電話super.width
和super.height
。
var storedWidth:Number=0; // to not have NaNs
public override function get width():Number {
var w:Number=super.width; // get width from that math
if (storedWidth>w) w=storedWidth; // or any other logic, to operate these values
return w;
}
高度相同的方法。
我確實使用NaN作爲storedWidth的佔位符。如果storedWidth是NaN,我使用super.width,否則使用storedWidth,即使它的值小於super.width。我將對getBoundary()進行一些研究。謝謝。 – Discipol