在TLF添加到显示列表之前,我试图找到元素的位置(例如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)); }
看来我无法检索TEXTLINE因为flowComposer会空。
任何想法我怎么能得到的界限/为什么作曲家总是空?
你能显示更多代码吗?例如,你的findLinkElement()方法在做什么?为什么'flowComposer'无效的答案似乎就在那里。 – 2013-02-19 01:50:01
肯定,刚加了findLinkElement()代码 – Guillaume 2013-02-19 08:34:45