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 group 中对此进行了调查后,事实证明,我需要设置以下选项:

<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 内容都丢失了。修复错误后,我可以将可见设置回 false。

于 2011-12-05T18:36:04.520 回答