2010-05-23 3 views
2

Я новичок в разработке Flex и использовании Flash Builder 4 с SDK 4. Теперь я получаю сообщение об ошибке, что «префикс« fx »для элемента« fx: стиль «не связан» в строке номера 4. Я искал его, и он имеет sth. делать с пространствами имен, но я не могу решить это сам.Префикс для элемента, не связанного

У меня есть файл под названием «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> 

Может кто-нибудь сказать мне, что случилось?

ответ

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. Посмотрите на API docs of Canvas для Flex 4 SDK.

Смежные вопросы