好的...到目前为止,我找不到一种方法来关闭单击 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 主题标签链接在 TextArea 中正常工作,我这样做:
addLinkHandler( textArea.textFlow );
PS 添加点击处理程序的算法基于这篇文章,但经过优化。