Flash 中的单 swf 预加载器包装器

Posted

技术标签:

【中文标题】Flash 中的单 swf 预加载器包装器【英文标题】:Single-swf preloader wrapper in Flash 【发布时间】:2013-02-02 10:16:06 【问题描述】:

我有一个 .swf,我想为其创建一个预加载器。最后,我想要一个结合了预加载器和内容 .swf 的文件。

我可以在 Flash 预加载器上找到的每个教程都提供以下两种选择之一:

    在预加载器包装器中使用 URLRequest 加载外部内容 .swf。这不起作用,因为我不想要两个 .swf。

    类似this one 的“单一瑞士法郎”解决方案适用于您在 Flash IDE 中创建的资产。我以为我可以很容易地走这条路,但我遇到了麻烦。我无法使用 Flash IDE 导入我的内容 .swf。我可以像这样使用嵌入标签:

    [Embed(source="content.swf")]
    private var MyContent:Class;
    

    但似乎这个嵌入的内容是在第一帧导出的,所以我的预加载器只出现在 内容 .swf 被加载之后。我猜这是沿着这些路线的东西。有什么想法吗?

【问题讨论】:

【参考方案1】:

但似乎这个嵌入的内容是在第一帧导出的

您是绝对正确的,默认情况下所有Ebmed 都嵌入在第一帧中,但 mxmlc 通过元标记在第一帧中创建带有预加载器的两个帧 swf 来提供解决方案:

[Frame(factoryClass="Preloader")]

您可以在这里找到分步指南http://www.bit-101.com/blog/?p=946。

【讨论】:

那个帖子似乎已经过时了。我尝试了它建议的一切都无济于事......从那时起事情可能发生了变化吗? 更具体地说,我可以使用 mxlc 进行编译,但是会出现很多运行时错误,例如“找不到类 mx.core::MovieClipLoaderAsset。” 不,Frame 元标记仍然可以正常工作,我在所有项目中都使用它。可能是我刚才找到的这个链接更接近你需要得到blog.yoz.sk/2011/01/using-metadata-frame-for-preloader的结果。你的错误呢,我似乎没有包含一些分类,但 mxmlc 检查 Frame 标记并在第二帧中包含所有使用类,因为根本不是第一帧(我是至少有 10 个项目使用这种加载器技术来确定这一点)。你的项目是纯 AS3 还是包含 mxml 文件? 我尝试了您提供的其他链接,但遇到了同样的问题。我有一个 App.as 文件,我将 [Embed(source="content.swf")] 放入其中,这就是引发错误的原因。我的猜测是,您的 App.as 可能是您项目的实际主类?

以上是关于Flash 中的单 swf 预加载器包装器的主要内容,如果未能解决你的问题,请参考以下文章

如何在 AS3 中创建预加载器

如何删除 Flash 的预加载器?

从 Flash 中的 swf 文件外部加载 xml 文件

保存简单Flash游戏的级别?

flash.display.Loader 间歇性地导致加载的 swf 的子级松散类型

我想为我的网站制作一个漂亮的百分比预加载器,但我必须使用 Flash 吗?