Flex,如果设置了宽度并且文本居中对齐,则RichEditableText的textFlow中的链接是不可单击的。

| 所以我有以下代码。          
    <fx:Script>
        <![CDATA[
            import flashx.textLayout.conversion.TextConverter;
            private var stringWithLink : String = \"click for some event<a href=\'event:foobar\'>foobar 012345647890123456789</a>\";
        ]]>
    </fx:Script>

    <s:RichEditableText id=\"text1\" editable=\"false\"  selectable=\"false\" left=\"0\" right=\"0\" textAlign=\"center\"
                        textFlow=\"{TextConverter.importToFlow(stringWithLink, TextConverter.TEXT_FIELD_HTML_FORMAT)}\" />

</s:WindowedApplication>
有一个带有带有href的html文本的RichEditableText(text1),可生成一些事件(foobar)。问题是链接的一部分无法正常工作。为了简单起见,我没有包含用于捕获来自textFlow的事件的代码,但是您可以确定该链接无效,因为鼠标光标不会在链接的第一部分转向手形光标。从链接的开头到第一个9左右,鼠标光标将保持为指针,但是如果将鼠标移到前9个指针之外,则光标将变为手形光标。如果删除字符串的数字部分,则整个链接将停止响应。 这似乎是宽度和文本对齐的问题。如果您未在text1上定义宽度,则问题将消失。但是如果您定义固定宽度或百分比宽度,问题就会再次出现。我还尝试了不同的文本对齐方式。如果尝试将文本向左对齐(开始,对齐,左对齐)的任何对齐方式,则它可以正常工作。但是,如果您使用的对齐方式是将文本与左侧边缘(中心,右侧,末端)对齐,则问题会再次出现。 有人知道为什么会这样吗?有什么解决方案吗?     
已邀请:
        我遇到了同样的问题。不知道为什么会这样。我确实找到了解决方案。它确实具有使整个文本字段(而不只是URL)可单击的一个缺点。在我的应用程序中,我正在从XML动态创建Flex UI对象。所以我已经有了HTML字符串和文本对齐方式。
//htmlText - html string pulled from the xml
//align - text alignment from xml
//txt - RichEditableText object

if ((htmlText.search(/<a *href/g) >= 0) && (align.toLowerCase() != \'left\')) {
    txt.textFlow.addEventListener(FlowElementMouseEvent.MOUSE_MOVE, useMouseHand);
    txt.addEventListener(MouseEvent.CLICK, urlClickHandler);
    txt.addEventListener(MouseEvent.MOUSE_OVER, useMouseHand);
}
函数useMouseHand有一个语句:Mouse.cursor = MouseCursor.BUTTON; 函数urlClickHandler解析htmlText的href和目标值,然后调用navigationToURL(flash.net.navigateToURL)。 至于事件侦听器,我发现我必须同时使用textflow和RichEditableText鼠标悬停/移动处理程序来显示手形光标。 希望能有所帮助。     

要回复问题请先登录注册