首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >flex4 TextArea中的IUITextField等效项

flex4 TextArea中的IUITextField等效项
EN

Stack Overflow用户
提问于 2011-04-16 04:15:57
回答 1查看 568关注 0票数 0

我有一些使用TextArea从字符索引中选择行的flex3代码:

代码语言:javascript
复制
var tf:IUITextField=ta.mx_internal::getTextField();
var lineIndex:int= tf.getLineIndexOfChar(someCharIndex);
var lineCharIndex:int= tf.getLineOffset(lineIndex);
var lineLength:int= tf.getLineLength(lineIndex);
ta.setSelection(lineCharIndex, lineCharIndex+lineLength);

我想把它升级到flex4的TextArea,但我不确定IUITextField方法(getLineIndexOfChar,getLineOffset,getLineLength)的flex4等价物是什么。

有人能告诉我这些方法的文档吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-04-16 04:58:52

下面是一个简单的应用程序,演示了如何使用TLF及其TextFlow在Spark TextArea中选择文本行

代码语言:javascript
复制
<?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" creationComplete="init()">
    <fx:Script>
    <![CDATA[
        import flashx.textLayout.compose.TextFlowLine;
        import flashx.textLayout.elements.TextFlow;
        import flashx.textLayout.events.SelectionEvent;

        private function init():void
        {
            var textFlow:TextFlow = ta.textFlow;
            textFlow.addEventListener(SelectionEvent.SELECTION_CHANGE, textFlow_selectionChangeHandler);
        }

        private function textFlow_selectionChangeHandler(event:SelectionEvent):void
        {
            // Just getting char index
            var selectionStart:int = event.selectionState.absoluteStart;
            var textFlow:TextFlow = ta.textFlow;
            var line:TextFlowLine = textFlow.flowComposer.findLineAtPosition(selectionStart);
            ta.selectRange(line.absoluteStart, line.absoluteStart + line.textLength);
        }
    ]]>
    </fx:Script>
    <s:TextArea width="400" height="200" verticalCenter="0" horizontalCenter="0" id="ta">
        Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor 
        incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco 
        laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate 
        velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, 
        sunt in culpa qui officia deserunt mollit anim id est laborum.      
    </s:TextArea>
</s:Application>

您所需要的一切都位于textFlow_selectionChangeHandler()方法中。确定字符位置后,我们提取此位置的TextFlowLine,然后选择它。要测试此代码,只需单击TextArea中的某个位置即可。

希望这能有所帮助!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5681922

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档