文本區域的初始高度遠遠大於內容,我無法找到使其始終與文本內容高度相同的方式:如何獲取mx:textarea高度與內容相同
<mx:TextArea id="textarea" borderStyle="solid" width="100%" wordWrap="true" selectable="false" backgroundAlpha="0" focusAlpha="0" text="this is a little test" />
給出一個邊框比所需要的高得多。
如果您在內容中有鏈接,那麼在鏈接無處附近觸發鏈接「鼠標懸停」時,這也會導致一個不明確的問題。
<mx:Script>
<![CDATA[
public function onInit():void
{
var style:StyleSheet = new StyleSheet();
var aLink:Object = new Object();
aLink.color = "#0000FF";
var aHover:Object = new Object();
aHover.color = "#00FF00";
aHover.textDecoration = "underline";
style.setStyle("a:hover", aHover);
style.setStyle("a:link", aLink);
textarea.styleSheet = style;
}
]]>
</mx:Script>
<mx:TextArea id="textarea" width="100%" wordWrap="true" borderStyle="solid" selectable="false" backgroundAlpha="0" focusAlpha="0" >
<mx:htmlText>
<![CDATA[<a href='event:http://www.adobe.com'>Navigate to Adobe.com.</a> this is testing nothing at all really]]>
</mx:htmlText>
</mx:TextArea>
Text組件不受此影響,但我無法將樣式表附加到文本組件。
希望有人能幫忙。還是有一些其他的組件可以使用,我可以添加一個樣式表來定位錨標籤。
我發現這個重寫的TextArea.as源,如果我重寫,並刪除了「2×」事半功倍幾乎工程,但不幸的是它意味着內容犯規得到較大時,它需要和垂直滾動代替,所以它幾乎沒有:
override protected function measure():void
{
super.measure();
measuredMinWidth = DEFAULT_MEASURED_MIN_WIDTH;
measuredWidth = DEFAULT_MEASURED_WIDTH;
// TextArea is minimum of two lines of text
measuredMinHeight = measuredHeight = 2 * DEFAULT_MEASURED_MIN_HEIGHT;
}
我喜歡這個主意,但它並沒有真正起作用,textField爲null,所以setter不起作用,可能是因爲它在preInitialised上創建之前創建的。所以我在Event.COMPLETE上設置了樣式,但實際上並沒有設置控件的樣式。 – Dan 2009-04-09 06:19:27