0

正如标题所说,文件加载正确,但加载屏幕只在最后闪烁。

在第 1 帧中导出的唯一内容是加载程序图像,而且非常小。

是否有可能有一个正在加载的队列并且加载器图像位于该队列的底部?因为这是添加到项目中的最后一件事

4

1 回答 1

3

如果您的预加载器仅在文件加载后显示,这意味着您仍有其他对象链接到第 1 帧。Flash 对此非常挑剔,无论您的设置如何,都很容易将事物拉到第 1 帧。编译时,Flash 会构建一个依赖关系图来确定每一帧需要哪些项目。如果它认为在导出框架设置之前需要资源,它将忽略该设置并将资源推送到该框架上。特别是,您的文档类直接引用的任何类都将被自动拉到第 1 帧。

检查文件、发布设置、Flash 中的“生成大小报告”可以帮助您查看有多少数据被导出到第 1 帧。这里有一些技巧可以确保所有内容都链接到正确的帧:

  • 在发布设置、Flash、ActionScript 设置中,确保“类的导出框架”设置为 2或更高。
  • 确保库符号在其链接属性中显示“在第 2 帧上导出”。较旧版本的 Flash 可能会在第 1 帧上导出它们,而不管类导出帧如何。在这种情况下,您必须使用老式方法取消选中“在第 1 帧导出”选项,然后手动将这些符号拖到第 2 帧的时间线上。
  • 不要直接从您的文档类或主时间轴上引用类。Document 类及其引用的所有资源始终放置在第 1 帧上。无论何时您var f : MyClass;在文档类或根时间轴上执行此操作,您都在引用MyClass,Flash 会自动将其拉到第 1 帧上。

为了避免在你的预加载器中直接引用你的主应用程序类,你想间接地实例化它,使用这样的东西:

var gameClass : Class = flash.utils.getDefinitionByName("Game") as Class;
var game : Sprite = new gameClass();

在这种情况下,您的 Preloader 成为文档类,并在 SWF 加载时间接创建 Game 类。这避免了对游戏及其内容的任何直接引用。

于 2012-04-07T13:33:59.937 回答