Apache flex 元素的前缀未绑定

Apache flex 元素的前缀未绑定,apache-flex,Apache Flex,我是Flex开发的新手,在SDK 4中使用Flash Builder 4。现在我得到一个错误,即第4行中元素“fx:Style”的前缀“fx”未绑定。 我搜索了它,它与名称空间有关,但我自己无法解决它 我将名为“UserStory.mxml”的文件放在目录“components”中,通过main.mxml将其放在屏幕上: <fx:Script> <![CDATA[ import components.UserStory; private

我是Flex开发的新手,在SDK 4中使用Flash Builder 4。现在我得到一个错误,即第4行中元素“fx:Style”的前缀“fx”未绑定。 我搜索了它,它与名称空间有关,但我自己无法解决它

我将名为“UserStory.mxml”的文件放在目录“components”中,通过main.mxml将其放在屏幕上:

<fx:Script>
    <![CDATA[
        import components.UserStory;
        private function init():void {
            var userStory1:UserStory = new UserStory();
            userStory1.x = 100;
            userStory1.y = 100;

            userStory1.userStoryText = "test";

            this.addChild(userStory1);
        }
    ]]>
</fx:Script>

第4行中发生错误的文件:

<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="300" height="150" styleName="userstory">

    <fx:Style source="styles/styles.css"/>

    <fx:Text x="5" y="5" width="275" height="135" text="{userStoryText}" fontFamily="notes" fontSize="18"/>

    <mx:Script>
        ...
    </mx:Script>
</mx:Canvas>

...

有人能告诉我出了什么问题吗?

正如您所怀疑的,这是名称空间的问题。MXML只是XML,在XML中,您可以定义名称空间并将它们绑定到URL。名称空间是XML元素冒号之前的部分,通常在封闭元素上定义

如果查看MXML文件,您将看到
mx
命名空间的一个命名空间声明:

<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" ...
此外,如果您正在使用Flex 4,您应该查看该文件,因为
mx:Canvas
是Flex 3组件,因此不能直接在Flex 4应用程序中使用。请看一下Flex4SDK的示例

<mx:Canvas xmlns:fx="http://ns.adobe.com/mxml/2009" ...