我是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>
有人可以告诉我出了什么问题吗?
答案 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。