2

シンプルな FLEX アプリケーションを構築しようとしています。残念ながら、「1131: Classes must not be nested.」というメッセージが表示されます。シンプルな 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

4 に答える 4

1

オプションがtrueの場合(一部のコードを含む結果)のように、コンパイラオプションを使用して一部のコードを除外/含めるためにこの問題が発生し、コード-define+=CONFIG::myOption,true にそのようなものがあります:

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

これにより 1131 エラーが発生します...回避策はありませんが、そのような条件付きコンパイル ディレクティブは使用していません。

于 2013-05-08T17:01:58.537 に答える
1

コメントありがとうございます。

このトピックの最大のヒントは、SDK でビルドすることです!!!

Flex Builder (IDE とプラグインの両方) には、エラー処理に関する多くの機能が欠けているようで、エラーが報告された場合でも信頼性が低くなります。

IDE で使用されるコンパイル用のプロンプト ウィンドウにより、多くの頭痛の種が解消されました。

ありがとうございました!

于 2010-01-11T12:25:15.580 に答える
0

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

ビルド いくつかの便利な環境変数を設定するバッチ ファイルを作成しましょう: 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 を実行します。次のようなメッセージで終了するはずです: BUILD SUCCESSFUL 次に、Flash Builder にこの新しい SDK の場所を伝えましょう: c:\ dev\sdk Flash Builder の「Installed SDKs」設定に追加します。プロジェクトがこの SDK を使用するように設定されていることを確認します (おそらく元の SDK で作成され、まだ参照されています)。プロジェクトを再構築します。それはうまくいくはずです。

于 2013-02-14T09:37:55.250 に答える
0

フレックスコンパイラオプション「厳密な型チェックを有効にする」があり、選択を解除するだけです。私はそれがとても簡単な解決策を与えることができると思います....

于 2010-02-03T17:56:44.610 に答える