Как найти ограничивающий прямоугольник LinkElement в Flex4 TextFlow? - PullRequest
0 голосов
/ 21 августа 2010

Элементы ссылки, о которых я говорю, представляют собой отдельные слова, поэтому они не заключены в контейнер, что означает, что они должны иметь один ограничивающий прямоугольник.Но как мне найти этот прямоугольник?Я знаком с Flex3, но не знаю достаточно о новом движке Text Layout Engine во Flex4.

Может кто-нибудь помочь мне, пожалуйста?Спасибо!

1 Ответ

0 голосов
/ 24 августа 2010

После некоторого копания коллега нашел ссылку на похожий вопрос на одном из форумов Adobe.Вот реализация алгоритма, предложенного в этом посте (спасибо, 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));
}

Я проверил это, и, похоже, справился с работой.Просто хотел поделиться им ради кого-то еще, заинтересованного в этой же проблеме в будущем.

...