表示リストに追加される前に、要素 (LinkElement など) の位置を検索しようとする TLF で問題が発生しました。
次のコードを試しました:
私の textFlow を作成します。
var textFlow:TextFlow = TextConverter.importToFlow(MY_HTML_STRING, TextConverter.TEXT_FIELD_HTML_FORMAT);
必要なすべての要素を取得します。
var lElem:Array = findLinkElement(textFlow, []); private function findLinkElement(group:FlowGroupElement, arr:Array):Array { var childGroups:Array = []; for (var i:int = 0; i < group.numChildren; i++) { var element:FlowElement = group.getChildAt(i); if (element is LinkElement) { arr.push(element as LinkElement); } else if (element is FlowGroupElement) { childGroups.push(element); } } for (i = 0; i < childGroups.length; i++) { var childGroup:FlowGroupElement = childGroups[i]; findLinkElement(childGroup, arr); } return arr; }
見つかった各要素について、境界を取得してみてください。
for each (var le:LinkElement in lElem){ var abs:int = le.getAbsoluteStart(); var tl:TextLine = le.getTextFlow().flowComposer.getLineAt(abs).getTextLine(true); var rect:Rectangle = tl.getAtomBounds(tl.getAtomIndexAtCharIndex(abs)); }
flowComposer が null であるため、Textline を取得できないようです。
境界を取得する方法/作曲家が常にnullである理由はありますか?