組件重寫---TextArea

MyTextArea.as

 

package myComponents
{
	//	Flex組件TextArea 的靜態大小爲100 像素寬,44 像素高,而不管它所包含的文本什麼樣。
	//	如果文本比TextArea 控件大,控件就顯示滾動條。
	//	在下面的例子中,重載了TextArea 控件的measure()方法,這樣它就能夠檢測傳遞給控件的文本,
	//	以及計算TextArea 控件的缺省大小,以使它能在一行中顯示整個文本字符串.
	import mx.controls.TextArea;
	import flash.text.TextLineMetrics;
	public class MyTextArea extends TextArea
	{
		public function MyTextArea()
		{
			super();
		}
		
		override protected function measure():void 
		{
			super.measure();
			var lineMetrics:TextLineMetrics = measureText(text);
			//默認大小和默認最小大小爲原有寬度加10像素
			measuredWidth = measuredMinWidth = lineMetrics.width + 10;
			measuredHeight = measuredMinHeight = lineMetrics.height + 10;
		}
		
	}
}
 

 

MyTextAreaDemo.mxml

 

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
			   xmlns:s="library://ns.adobe.com/flex/spark" 
			   xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" xmlns:myComponents="myComponents.*">
	<s:layout>
		<s:BasicLayout/>
	</s:layout>
	<fx:Declarations>
		<!-- 將非可視元素(例如服務、值對象)放在此處 -->
	</fx:Declarations>
	<myComponents:MyTextArea x="325" y="203" text="這些方法,然後在設置icon屬性後又執行一次這些方法.程序更改字體大小的執行速度大大快於Flex 更新應用的速度,"/>
</s:Application>
 

 

 

重寫效果:

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章