【问题标题】:How do I find the bounding rectangle of a LinkElement in a Flex4 TextFlow?如何在 Flex4 TextFlow 中找到 LinkElement 的边界矩形?
【发布时间】:2010-08-21 08:56:41
【问题描述】:

我所说的链接元素是单个单词,所以它们没有被包裹在容器内,这意味着它们应该有一个单一的边界矩形。但是我该如何找到这个矩形呢?我对 Flex3 很熟悉,但对 Flex4 中新的文本布局引擎了解不够。

有人可以帮帮我吗?谢谢!

【问题讨论】:

    标签: apache-flex actionscript-3 flex4


    【解决方案1】:

    经过一番挖掘,一位同事在一个 Adob​​e 论坛上找到了对 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));
    }
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-02
      • 2014-02-27
      • 1970-01-01
      • 2012-04-30
      • 1970-01-01
      相关资源
      最近更新 更多