【发布时间】:2010-08-21 08:56:41
【问题描述】:
我所说的链接元素是单个单词,所以它们没有被包裹在容器内,这意味着它们应该有一个单一的边界矩形。但是我该如何找到这个矩形呢?我对 Flex3 很熟悉,但对 Flex4 中新的文本布局引擎了解不够。
有人可以帮帮我吗?谢谢!
【问题讨论】:
标签: apache-flex actionscript-3 flex4
我所说的链接元素是单个单词,所以它们没有被包裹在容器内,这意味着它们应该有一个单一的边界矩形。但是我该如何找到这个矩形呢?我对 Flex3 很熟悉,但对 Flex4 中新的文本布局引擎了解不够。
有人可以帮帮我吗?谢谢!
【问题讨论】:
标签: apache-flex actionscript-3 flex4
经过一番挖掘,一位同事在一个 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));
}
我已经对此进行了测试,它似乎可以完成这项工作。只是想分享它以供将来对相同问题感兴趣的其他人使用。
【讨论】: