Flex中如何利用getTextField事件和numLines属性,计算出TextArea控件中内容的行数的例子

关于Flex的 TextArea控件的例子,前面已经介绍了不少,包括设置该控件 文本无效时的颜色, 如何利用setSelection事件设定文本选中范围, 如何利用htmlText属性以及condenseWhite属性紧缩HTML空格……等等,可以直接点 TextArea Tag查看�CWordPress的Tag功能,其实是非常不错。
接下来的例子,演示了Flex中如何利用getTextField事件和numLines属性,计算出TextArea控件中内容的行数。
让我们先来看一下Demo(可以右键View Source或 点击这里察看源代码
下面是完整代码(或 点击这里查看):
Download: main.mxml
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
  3.         layout="vertical"
  4.         verticalAlign="middle"
  5.         backgroundColor="white">
  6.     <mx:Script>
  7.         <![CDATA[
  8.             import mx.utils.StringUtil;
  9.             private function textArea_change(evt:Event):void {
  10.                 callLater(updateStats, [evt]);
  11.             }
  12.             private function updateStats(evt:Event):void {
  13.                 var nLines:uint = textArea.mx_internal::getTextField().numLines;
  14.                 var nChars:uint = textArea.length;
  15.                 var str:String = "{0} characters; {1} lines";
  16.                 panel.status = StringUtil.substitute(str,
  17.                                     nChars,
  18.                                     nLines);
  19.             }
  20.         ]]>
  21.     </mx:Script>
  22.     <mx:String id="str" source="lorem.txt" />
  23.     <mx:ApplicationControlBar dock="true">
  24.         <mx:Form styleName="plain">
  25.             <mx:FormItem label="width (%):">
  26.                 <mx:HSlider id="slider"
  27.                         minimum="50"
  28.                         maximum="100"
  29.                         value="100"
  30.                         liveDragging="true"
  31.                         snapInterval="1"
  32.                         tickInterval="10" />
  33.             </mx:FormItem>
  34.         </mx:Form>
  35.     </mx:ApplicationControlBar>
  36.     <mx:Panel id="panel"
  37.             percentWidth="{slider.value}"
  38.             height="100%">
  39.         <mx:TextArea id="textArea"
  40.                 htmlText="{str}"
  41.                 condenseWhite="true"
  42.                 width="100%"
  43.                 height="100%"
  44.                 change="textArea_change(event);"
  45.                 resize="textArea_change(event);" />
  46.     </mx:Panel>
  47. </mx:Application>

你可能感兴趣的:(职场,休闲)