我在mxml中有一個Text元素。文本值正在由用戶操作改變。我想將寬度設置爲文本的確切大小。由於寬度屬性是實際組件的寬度,我需要的measuredWidth屬性觸發FlexEvent.UPDATE_COMPLETE事件之後:以適當的寬度在第一時間更改文本的文本並在Flex中獲取measuredWidth
textField.addEventListener(FlexEvent.UPDATE_COMPLETE, function(e:FlexEvent):void{
textField.width = textfield.measuredWidth;
});
這隻變化。之後,它只能更小,但不能更大。我讀過Text和UIComponent源代碼,它說我需要調用invalidateSize()。但它只適用於如果我設置explicitWidth屬性NaN。所以我做了setter功能:
function setText(newValue:String):void {
textField.text = newValue;
textField.explicitWidth = NaN;
textField.invalidateSize();
}
但它仍然只是在縮小。我的問題是,如何在UPDATE_COMPLETE事件後始終獲得正確的measuredWidth值?
感謝
只是好奇你爲什麼需要這個屬性?也許你正試圖解決一些可以通過其他方式解決的問題? – Constantiner 2011-05-01 19:01:28
我真正需要的是將文本元素大小應用到內容文本的大小,所以它始終是相同的寬度。有更好的做法嗎? – itarato 2011-05-01 19:17:20
我是否對,您需要使用「文本」控件來更改高度以適合所有文本? – Constantiner 2011-05-01 19:21:34