RichEditableText - 此处不允许混合内容

时间:2012-12-21 15:18:45

标签: xml flex4

我正在开发一个最近从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。知道为什么我会收到这个错误以及我能做些什么吗?

1 个答案:

答案 0 :(得分: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"