在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