如何在Flex4 TextFlow中找到LinkElement的边界矩形?

时间:2010-08-21 08:56:41

标签: flex actionscript-3 flex4

我所说的链接元素是单个单词,因此它们不会包含在容器中,这意味着它们应该有一个单独的边界矩形。但是我如何找到这个矩形呢?我熟悉Flex3,但对Flex4中的新文本布局引擎知之甚少。

是的,有人能帮帮我吗?谢谢!

1 个答案:

答案 0 :(得分:0)

经过一番挖掘后,一位同事在其中一个Adobe论坛上找到了对similar question的引用。这是该帖子中提出的算法的实现(感谢Noam!):

private function getElementPosition(link:LinkElement):Point {
    if (!link) return null;
    var absoluteStart:int = link.getAbsoluteStart();
    var textLine:TextLine = link.getTextFlow().flowComposer.findLineAtPosition(absoluteStart).getTextLine(true);
    var rect:Rectangle = textLine.getAtomBounds(textLine.getAtomIndexAtCharIndex(absoluteStart));
    return textLine.localToGlobal(new Point(rect.x, rect.height+rect.y));
}

我已经对此进行了测试,似乎可以完成这项工作。只是想为了将来对同样问题感兴趣的人分享它。