组件重写---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>
 

 

 

重写效果:

 

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