Классы не должны быть вложенными - MXML - PullRequest
2 голосов
/ 08 января 2010

Я пытаюсь создать простое приложение FLEX. К сожалению, я получаю «1131: классы не должны быть вложенными». ошибки даже с простыми MXML .... ошибка выскакивает в открывающем теге mx: Application: (Я использую PureMVC, если это важно)

<?xml version="1.0" encoding="utf-8"?>
<mx:Application 
    xmlns:mx="http://www.adobe.com/2006/mxml"
        xmlns:view="icm.view.components.*"
    viewSourceURL="srcview/index.html"
    name="ICM"
    layout="absolute"
    > //FLEX BUILDER SAYS THE ERROR IS HERE


<mx:Script>
        <![CDATA[
        import mx.effects.easing.Exponential;
        import icm.ApplicationFacade;

        public static const NAME:String = "AppSkeleton";
        private var facade:ApplicationFacade = ApplicationFacade.getInstance(NAME);
        ]]>
</mx:Script>

    <mx:Move id="slideInEffect" yFrom="5000" easingFunction="{Exponential.easeOut}" duration="1300"/>
    <mx:Fade id="fadeOut" duration="1000" alphaFrom="1.0" alphaTo="0.0"/>
    <mx:Fade id="fadeIn" duration="1000" alphaFrom="0.0" alphaTo="1.0"/>

<mx:Style source="css/yflexskin.css" />

    <mx:Canvas id="mainViewStack" left="0" top="0" right="0" bottom="0" >
        <mx:ViewStack id="vwStack" left="0" top="0" right="0" bottom="0" resizeToContent="false" creationPolicy="auto">
            <mx:VBox />
            <view:SplashScreen id="splashScreen" showEffect="{slideInEffect}" hideEffect="{fadeOut}" />
            <view:LoginScreen id="loginScreen" showEffect="{fadeIn}" />
            <view:MainScreen id="mainScreen" showEffect="{fadeIn}" />
        </mx:ViewStack>
    </mx:Canvas>

</mx:Application>

Может кто-нибудь помочь мне понять, почему? Я делаю много бессмысленных тестов, потому что я не понимаю этого. Иногда, если я удаляю раздел «Сценарий», компиляция заканчивается, другие нет.

Спасибо

Ответы [ 4 ]

1 голос
/ 08 мая 2013

У меня была эта проблема при использовании опции компилятора для исключения / включения некоторого кода как -define+=CONFIG::myOption,true когда опция имеет значение true (в результате чего есть некоторый код), и у вас есть такая вещь в вашем коде:

CONFIG::myOption {
    import <a package>;
}

это приведет к ошибке 1131 ... У меня нет обходного пути, но я не использую такие директивы условной компиляции.

1 голос
/ 11 января 2010

Спасибо всем за комментарии.

Лучший совет в этой теме: сборка с SDK !!!

В Flex Builder (как в среде IDE, так и в плагине), по-видимому, отсутствует множество функций по обработке ошибок, и даже когда он сообщает об ошибке, он ненадежен.

Окно с подсказкой для компиляции, используемой в IDE, избавило меня от многих головных болей.

Еще раз всем спасибо!

0 голосов
/ 14 февраля 2013

http://blog.gigantt.com/2011/02/how-to-build-flex-sdk.html

Строительство Давайте создадим командный файл для установки некоторых полезных envars: envars.bat

      set JAVA_HOME=c:\Program Files\Java\jdk1.6.0_23
      set PATH=c:\dev\ant\bin;%PATH%
      set ANT_OPTS=-Xmx256m

Откройте cmd.exe и запустите его ... Отредактируйте c: \ dev \ sdk \ frameworks \ build.xml Ищу: И исправьте местоположение файла манифеста из: "$ {datavis.dir} /manifest.xml" для: "$ {} Datavis.dir /manifest_datavisualization.xml" Запустите Ant: c: \ dev \ sdk \ frameworks> ant Оно должно заканчиваться таким сообщением: СТРОИТЬ УСПЕШНОЕ Теперь давайте расскажем Flash Builder, где найти этот новый SDK: c: \ dev \ sdk Добавьте его в настройки «Установленные SDK» в Flash Builder Убедитесь, что ваш проект настроен на использование этого SDK (возможно, он был создан с оригинальным и все еще ссылается на него). Перестрой свой проект. Это должно работать.

0 голосов
/ 03 февраля 2010

Существует опция гибкого компилятора «Включить строгую проверку типов», просто отмените выбор. Я думаю, что может дать столь простое решение ....

...