Apr 26
接下来的例子演示了Flex的TextArea控件中,如何利用setSelection事件设定文本选中范围(移动下面Demo中的游标进行体验)。
让我们先来看一下Demo(可以右键View Source或点击这里察看源代码):
下面是完整代码(或点击这里察看):
Download: main.mxml
- <?xml version="1.0" encoding="utf-8"?>
- <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
- layout="vertical"
- verticalAlign="middle"
- backgroundColor="white">
- <mx:Script>
- <![CDATA[
- import mx.core.IUITextField;
- import mx.events.SliderEvent;
- import mx.controls.sliderClasses.Slider;
- private function slider_change(evt:SliderEvent):void {
- var value1:int = Slider(evt.currentTarget).values[0];
- var value2:int = Slider(evt.currentTarget).values[1];
- var min:int = Math.min(value1, value2);
- var max:int = Math.max(value1, value2);
- textArea.setSelection(min, max);
- }
- private function init():void {
- var tf:IUITextField = textArea.mx_internal::getTextField();
- tf.alwaysShowSelection = true;
- textArea.verticalScrollPosition = 0;
- }
- ]]>
- </mx:Script>
- <mx:String id="lorem" source="lorem.html" />
- <mx:ApplicationControlBar dock="true">
- <mx:Form styleName="plain">
- <mx:FormItem label="setSelection():">
- <mx:HSlider id="slider"
- minimum="0"
- maximum="{textArea.htmlText.length}"
- thumbCount="2"
- liveDragging="true"
- allowThumbOverlap="true"
- snapInterval="1"
- dataTipPrecision="0"
- change="slider_change(event);" />
- </mx:FormItem>
- </mx:Form>
- </mx:ApplicationControlBar>
- <mx:TextArea id="textArea"
- htmlText="{lorem}"
- textAlign="justify"
- condenseWhite="true"
- width="100%"
- height="100%"
- creationComplete="init();" />
- </mx:Application>
代码:Peter deHaan 翻译/整理/编译:minidxer
