Префикс для элемента не привязан - PullRequest
2 голосов
/ 23 мая 2010

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

У меня есть файл с именем "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 Ответ

4 голосов
/ 24 мая 2010

Как вы и подозревали, это проблема с пространством имен. MXML - это просто XML, а в XML вы можете определять пространства имен и связывать их с URL. Пространства имен являются частью перед двоеточием XML-элемента и обычно определяются во включающем элементе.

Если вы посмотрите на свой файл MXML, то увидите одно объявление пространства имен для пространства имен mx:

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

Отсутствует декларация для fx, и именно на это жалуется компилятор. Добавьте соответствующее определение, и все будет в порядке (см. эту страницу для более подробной информации):

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

Кроме того, если вы используете Flex 4, вам следует просмотреть файл, так как mx:Canvas является компонентом Flex 3 и поэтому не может напрямую использоваться в приложениях Flex 4. Посмотрите API документы Canvas для Flex 4 SDK.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...