我遇到了一個令我瘋狂的問題。顯然,按鈕標籤不能在flex中正確縮放,或者我只是沒有正確地進行調整。下面是一個簡單的可運行測試用例。防止應用程序按比例切斷Flex 3中的按鈕標籤
問題:
在測試情況下,你可以看到按鈕標籤是在以多個不同的窗口大小結束切斷,但有時「啪啪」到一個新的字體水平似乎和它看起來正確?爲什麼是這樣?
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
<![CDATA[
import mx.events.ResizeEvent;
public var minScale:Number = 0.5;
public var baseWidth:Number = 1000;
public var baseHeight:Number = 800;
override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void {
super.updateDisplayList(unscaledWidth,unscaledHeight);
if(width < baseWidth || height < baseHeight) {
var sx:Number = Math.max(minScale, width/baseWidth);
var sy:Number = Math.max(minScale, height/baseHeight);
var s:Number = Math.min(sx, sy);
getChildAt(0).scaleX = s;
getChildAt(0).scaleY = s;
}
else{
getChildAt(0).scaleX = 1;
getChildAt(0).scaleY = 1;
}
}
]]>
</mx:Script>
<mx:Canvas>
<mx:Button label="WWWWWWW" fontSize="12"/>
</mx:Canvas>
</mx:Application>
謝謝。
我發現這似乎非常相似,但我想避免使用圖形皮膚來顯示文本? http://www.actionscript.org/forums/showthread.php3?t=150938 – buddyp450 2013-02-19 22:06:04
你的字體是否嵌入?如果不是,它可能不會縮放。但是,如果您不想嵌入字體,在某些情況下,您可以通過將blendMode設置爲「圖層」來縮放字體。但是你需要確保它在x和y方向上的縮放比例相同。 – 2013-02-20 04:17:26
我按照說明[這裏](http://livedocs.adobe.com/flex/3/html/help.html?content=fonts_04.html)嵌入字體,我仍然有問題。我也嘗試了blendMode層,正如你所建議的那樣。正如你在我上面的代碼塊中看到的,我已經對X和Y使用了相同的比例。感謝您的評論。 – buddyp450 2013-02-20 04:23:53