如何读取火花文本区域隐式换行符



我有一个文本区域,用户可以在其中输入文本,还可以更改文本区域的宽度和高度。调整大小时,文本在预期位置中断。我需要找到调整大小后 TextArea 皮肤添加隐式换行符的位置。

环境

  • 弹性生成器 4.6
  • 弹性开发工具包 4.6.0
  • Flash Player 11.1

This is just plain text that
breaks after the word "that".

关于当 TextArea lineBreak 属性为 toFit 并且文本没有 CR 或 LF 字符时如何找到换行符的位置的任何想法?在上面的示例中,它将是位置 28。

您可以将文本拆分为行组件并轻松返回它们各自的文本长度,但您必须使用一些"文本布局框架"魔法。

  • 首先访问 TextArea 的 textFlow 属性(不是 text 属性(,该属性将返回 TextFlow 实例。这是文本区域中文本的模型。
  • 这个对象有一个flowComposer,它负责文本的布局并携带大量信息。
  • 它的类型是IFlowComposer,但你必须将其转换为StandardFlowComposer才能访问各个行。
  • 现在,您可以访问 lines 属性,该属性是 TextFlowLine 的集合
  • 其中每行都有一个textLength属性。

所以以下

var composer:StandardFlowComposer = 
    myTextArea.textFlow.flowComposer as StandardFlowComposer;
for each (var line:TextFlowLine in composer.lines) 
    trace(line.textLength)

会屈服(以您的示例(

29
30

最新更新