1

我正在开发一个最近从 Flex 3 升级到 Flex 4 的 Flex 应用程序。我想使用 spark RichEditableText 组件来显示一些嵌入了超链接的文本,但我遇到了问题。我在这里遵循示例:http: //help.adobe.com/en_US/flex/using/WS02f7d8d4857b1677-165a04e1126951a2d98-7ff3.html

这是我的组件的简化版本,但仍有错误

<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml"
           xmlns:skins="skins.*"
           xmlns:annotations="annotations.*" xmlns:s="library://ns.adobe.com/flex/spark">

    <s:VGroup top="5" left="5">
        <s:RichEditableText id="richTxt" 
                            editable="false" 
                            focusEnabled="false">
            <s:textFlow>
                <s:TextFlow>
                    <s:p>
                        The following link takes you to: <s:a href="http://www.adobe.com">Adobe.com</s:a>
                    </s:p>
                </s:TextFlow>
            </s:textFlow>
        </s:RichEditableText>
    </s:VGroup>
</mx:Canvas>

我的问题是,对于 TextFlow 元素内的每个标签,FlexBuilder 都会给我一个错误“此处不允许混合内容”。如果我删除 TextFlow 元素内的标签,只留下纯文本,事情似乎可以正常工作。谷歌没有提供任何关于我为什么会收到此错误的见解。我正在使用 Flex 4.6 SDK。知道为什么我会收到这个错误以及我能做些什么吗?

4

1 回答 1

1

我回到这个问题并想出了答案。我使用了错误的 mx 命名空间。由于我正在处理的应用程序已升级到 Flex 4,因此大多数组件仍在使用旧的 2006 mx 命名空间。看来,为了使用 RichEditableText 组件,我需要切换到新的 mx 命名空间。所以,我删除了旧的 mx 命名空间,并用这些替换它:

 xmlns:mx="library://ns.adobe.com/flex/mx"
 xmlns:fx="http://ns.adobe.com/mxml/2009"
于 2013-04-03T19:08:29.553 回答