我所说的链接元素是单个单词,因此它们不会包含在容器中,这意味着它们应该有一个单独的边界矩形。但是我如何找到这个矩形呢?我熟悉Flex3,但对Flex4中的新文本布局引擎知之甚少。
是的,有人能帮帮我吗?谢谢!答案 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));
}
我已经对此进行了测试,似乎可以完成这项工作。只是想为了将来对同样问题感兴趣的人分享它。