0

問題

Air アプリケーション (flexmojos でコンパイル) を実行すると、「空」のように見えます。ウィンドウがまったくありません。Flash Builder からコンパイルすると、完全に機能します。

バックグラウンド

Mac OS X: Lion で Maven の flexmojos プラグインを使用して Adob​​e Air アプリケーションをコンパイルしています。SWF ファイルと AIR ファイルが正常に生成されます。

  • SWF ファイルをダブルクリックすると、問題なく開きます
    (AIR 環境で実行されていないため、予想どおりのエラーでクラッシュします)。

  • AIR ファイルをダブルクリックしても、ウィンドウが開きません。
    (Mac のメニュー バーにアプリケーション名が表示されますが、アプリケーション ウィンドウもエラーも表示されません)

/Applications/MyApplication.app/Contents/Resources
を見ると、次のファイルが表示されます。

META-INF            MyAppMainAir.swf
MyAppMainAir.css    mimetype

swf ファイルは適切なサイズで、期待どおりに開きます。

POM スニペット

<plugin>
            <groupId>org.sonatype.flexmojos</groupId>
            <artifactId>flexmojos-maven-plugin</artifactId>
            <version>${flexmojos.version}</version>
            <configuration>
            <flexBuilderCompatibility>true</flexBuilderCompatibility>
                <sourceFile>${application.name}.mxml</sourceFile>
                <finalName>${application.name}</finalName>
                <descriptorTemplate>${project.build.sourceDirectory}/${application.name}-app.xml</descriptorTemplate>
                <storepass>${keystore.password}</storepass>
                <includeStylesheets>
                    <stlyesheet>
                        <name>${application.name}.css</name>
                        <path>${application.name}.css</path>
                    </stlyesheet>
                </includeStylesheets>
                <licenses>
                    <flexbuilder3>${flex.license}</flexbuilder3>
                </licenses>
                <targetPlayer>10.2.0</targetPlayer>
            </configuration>
            <executions>
                <execution>
                    <goals>
                        <goal>sign-air</goal>
                    </goals>
                </execution>
            </executions>
</plugin>

質問

SWF ファイルは正しく作成されているのに、AIR アプリケーションでウィンドウが開かないのはなぜですか? Flash Builder からアプリケーションをビルド/実行すると、完全に動作します。

入力/アドバイスをいただければ幸いです。

4

1 に答える 1

1

解決

FlexMojos Google グループでこれを調査したところ、次のオプションを設定する必要があることがわかりました。

<swfVersion>11</swfVersion>

何らかの理由で、これがデフォルトの 10 に設定されていたため、問題が発生していました。この行を追加すると、すべてが完全に機能します!

代替修正

別の方法として、air-config.xml ファイルをロードして問題を解決することもできました。

<loadConfig>${flex.sdk}/frameworks/air-config.xml</loadConfig>

このファイルは、次のリポジトリにもあります。

${path_to_m2_repo}/com/adobe/flex/framework/framework/${flex.sdk.version}/configs_zip/air-config.xml

flex.sdk.version=4.5.1.21328たとえば、


その他の見えないウィンドウの問題

また、最初のウィンドウを表示するには、記述子の値を調整して、visible=true に設定する必要がある場合があります。

<initialWindow>
    <content>Main.swf</content>
    <autoOrients>false</autoOrients>
    <fullScreen>false</fullScreen>
    <visible>true</visible>
</initialWindow>

私が抱えていたエラーと、これを false に設定したことが組み合わさると、ウィンドウがまったく表示されず、混乱しました。visible=true を設定すると、少なくともウィンドウは表示されますが、すべての Spark コンテンツが表示されませんでした。エラーが修正されたら、visible を false に戻すことができました。

于 2011-12-05T18:36:04.520 に答える