0
我說的鏈接元素是單個單詞,所以它們不會被包裝在容器中,這意味着它們應該有一個單獨的邊界矩形。但我該如何去尋找這個矩形?我對Flex3很熟悉,但對Flex4中新的Text Layout Engine不太瞭解。如何在Flex4 TextFlow中找到LinkElement的邊界矩形?
有人可以幫我嗎?謝謝!
我說的鏈接元素是單個單詞,所以它們不會被包裝在容器中,這意味着它們應該有一個單獨的邊界矩形。但我該如何去尋找這個矩形?我對Flex3很熟悉,但對Flex4中新的Text Layout Engine不太瞭解。如何在Flex4 TextFlow中找到LinkElement的邊界矩形?
有人可以幫我嗎?謝謝!
經過一番挖掘,一位同事在其中一個Adobe論壇上發現了對similar question的引用。這是在該職位提出的算法的實現(感謝諾姆!):
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));
}
我測試過這一點,似乎做的工作。只是想分享它,爲了未來對其他感興趣的人。