6

我正在尝试在 AIR SDK 3.7 中使用新的 ASC2.0 编译器,但我似乎遇到了无法检测到我的预加载器类的问题。

如果我使用非 ASC2.0 编译器,它会识别并编译在 Main 类的 Frame 元数据标记中声明的 Preloader 类,如下所示:

[Frame(factoryClass = "Preloader")]

但是一旦我用 ASC2.0 编译它,它就会忽略 Frame 元数据,只是尝试编译 Main 类并假设它必须是 Sprite / MovieClip 的子类(它不一定必须是预加载了 Frame 元数据标签),因此无法编译。

如果有人能证实这一点,那就太好了,我已经在这上面旋转了一段时间。谢谢!

4

1 回答 1

10

显然,它不再受支持。这里有一个类似的问题:

ASC2.0 和 Frame 元标记

新的解决方案似乎是这样的:

您必须手动添加数据的编译器参数-frame

但是,要使其正常工作,您必须将项目设置与[Frame]元数据技术稍有不同。

之前(当使用旧的[Frame]元数据技术时),您必须将 Main 类指定为 Document 类(然后它将编译主入口点并将其重定向到您指定的 Preloader 类)。

现在使用 ASC2.0,您将把Preloader 类设置为 Document 类

以下是您必须设置的几件事:

  • 您的Preloader类应该扩展 Movieclip子类。
    (这使您的 Main 内容可以嵌入到Frame #2上)
  • 将您的“Preloader.as”类(或者无论您如何称呼它)指定为 Document 类。
  • 把这个附加编译器参数
    -frame=AnyFrameLabelYouWant,YourMainClass
  • 此外,使用此附加编译器参数添加 SWF 版本:(
    -swf-version=18 尽管我认为 17 也可以与 ASC2.0 一起使用......)
  • 确保您在 IDE 中使用ASC2.0 SDK编译器!

注意现在我考虑了一下,也许可以注入/** @mxmlc */JavaDoc 注释以向编译器提供指令,但我还没有尝试过。这可能是 ASC2.0 编译器中缺少元数据支持的解决方法。(编辑:我试过一次,这个功能似乎只适用于 FlashDevelop 中的“构建”工具栏按钮,它只编译当前聚焦的文件)

于 2013-04-20T17:16:14.100 回答