2010-01-07 3 views
2

J'essaie de créer une application FLEX simple. Malheureusement, je reçois '1131: Les classes ne doivent pas être imbriquées.' erreurs même avec le MXML .... l'erreur simples ressorte à la mx: Application balise ouvrante: (j'utilise PureMVC s'il est important)Les classes ne doivent pas être imbriquées - MXML

<?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> 

que quelqu'un peut me aider à comprendre pourquoi? J'ai fait beaucoup de tests de non-sens parce que je ne comprends pas. Parfois, si je supprime la section Script, la compilation réussit, d'autres non.

Merci

+0

Essayez de créer ce fichier avec seulement le SDK et collez l'erreur exacte ici (le retraçage complet). – rfunduk

+1

Je suis capable de compiler ce qui précède si je supprime tout le code non MXML; existe-t-il une classe (ApplicationFacade), une feuille de style (flexskin.css) ou un composant (SplashScreen, etc.) dont l'inclusion déclenche l'erreur? –

+0

"C: \ Fichiers programme \ Adobe \ Flex Builder 3 Plug-in \ sdks \ 3.2.0 \ bin \ mxmlc.exe "-source-path = src \ main; src \ assets; src \ agenda; sr c \ common; src \ data -library-path + = bibliothèques src \ main \ ICM.mxml Compile tout ok, juste un paquet d'avertissements: src \ main \ ICM.mxml (311): Avertissement: Le sélecteur de type CSS 'LinkButton' n'a pas été traité, car le type n'a pas été utilisé dans l'application – Samuel

Répondre

1

Merci à tous pour vos commentaires.

Le plus grand conseil à ce sujet est la suivante: construire avec le SDK !!!

Flex Builder (à la fois, l'IDE et le plug-in) semble manquer beaucoup de fonctionnalités sur le traitement des erreurs et même quand il signale une erreur, il est pas fiable.

Une fenêtre d'invite pour la compilation utilisée avec l'IDE m'a sauvé beaucoup de maux de tête.

Merci encore à tous!

0

Il y a une option de compilateur flex « Activer vérification de type stricte » juste désélectionner. Je pense que cela peut donner si une solution simple ....

0

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

Building Créons un fichier de commandes pour définir quelques envars utiles: 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 ouvert et exécutez-le ... Modifier c: \ dev \ sdk \ frameworks \ build.xml Recherchez: Et de corriger l'emplacement du fichier manifeste de: "$ {datavis.dir} /manifest.xml" à: "$ {datavis. dir} /manifest_datavisualization.xml " Exécuter Ant: c: \ dev \ sdk \ frameworks> ant Il devrait se terminer par un tel message: BUILD SUCCESSFUL Dites maintenant à Flash Builder où trouver ce nouveau SDK: c: \ dev \ sdk Ajouter à la « SDKs REALISEE » paramètres dans flash Builder Assurez-vous que votre projet est configuré pour utiliser ce SDK (il a probablement été créé avec l'original et se réfère toujours à lui). Reconstruisez votre projet. Ça devrait marcher.

1

j'ai eu ce problème en utilisant une option du compilateur pour exclure/inclure un code comme -define+=CONFIG::myOption,true lorsque l'option est vrai (résultant notamment du code), et vous avez une telle chose dans votre code:

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

cela se traduira par une erreur 1131 ... Je n'ai aucune solution de contournement mais n'utilisant pas de telles directives de compilation conditionnelles.

Questions connexes