好的...到目前爲止,我找不到一種方式來關閉點擊時URL的自動轉義。但是我找到了解決方法。
基本上,我爲TextFlow內的所有鏈接元素添加了自定義點擊處理程序,並在單擊時手動打開鏈接(而不是內置的TLF行爲)。就像這樣:
public function addLinkHandler(textFlowOrGroupElement: FlowGroupElement): void
{
// scan the flow elements
for (var f1: int = 0; f1 < textFlowOrGroupElement.numChildren; f1 ++) {
// found element
var curFlowGroupElement: FlowElement = textFlowOrGroupElement.getChildAt(f1);
// if this is the link element, add the click event listener
if (curFlowGroupElement is LinkElement) {
(curFlowGroupElement as LinkElement).addEventListener(FlowElementMouseEvent.CLICK, onLinkClick);
}
// if this is another flow group
else if (curFlowGroupElement is FlowGroupElement) {
// scan this group in turn, recursively
addLinkHandler(curFlowGroupElement as FlowGroupElement);
}
}
}
這裏是鏈接的點擊處理程序:到底
public function onLinkClick(e: FlowElementMouseEvent): void
{
e.stopImmediatePropagation();
e.preventDefault();
var linkElement: LinkElement = e.flowElement as LinkElement;
navigateToURL(new URLRequest(linkElement.href), '_blank');
}
所以使Twitter的主題標籤鏈接的文本區正常工作,我這樣做:
addLinkHandler(textArea.textFlow);
PS添加點擊處理程序的算法基於this post,但進行了優化。
不知道這是否會工作,但你有沒有嘗試封裝'<[CDATA[]]>'? –
這不起作用,當我將HTML文本導入TextFlow時,TLF不理解CDATA塊。 – davee44