未绑定元素的前缀

时间:2010-05-23 16:59:52

标签: flex

我是Flex开发的新手,并使用Flash Builder 4和SDK 4.现在我收到错误,“前缀”fx“for element”fx:Style“未绑定”在第4行。 我搜索了它,它有......与命名空间有关,但我无法通过myelf解决它。

我在“components”目录中有一个名为“UserStory.mxml”的文件,通过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>

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

1 个答案:

答案 0 :(得分:4)

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

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

<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" ...

缺少fx的声明,这就是编译器抱怨的内容。添加适当的定义,您应该没问题(有关详细信息,请参阅this page):

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

此外,如果您使用的是Flex 4,则应该查看该文件,因为mx:Canvas是Flex 3组件,因此不能直接在Flex 4应用程序中使用。请查看Flex 4 SDK的API docs of Canvas