【问题标题】:AS3 Preloader Internal or External?AS3 预加载器内部还是外部?
【发布时间】:2011-06-26 12:07:55
【问题描述】:

我想知道加载我的 Flash 游戏的最佳方式是什么。我知道如何制作外部预加载器,但如果我想将游戏的 .swf 上传到像 newgrounds 这样的网站,我想我需要一个内部预加载器。

我尝试了几次,但我的游戏仅在 swf 加载 100% 后才显示。在加载时,我只看到带有灰色“...”的白屏,我猜这是 Flash 播放器内置的。

我有一个名为 AsteroidsGame.fla 的 .fla,它有一个包含一些类的库,并且游戏的结构被编码到一个名为 AsteroidsGame.as 的 .as 文件中。也许这会引起问题?我不知道,但如果能帮助我启动和运行预加载器,我将不胜感激。

谢谢。

【问题讨论】:

标签: flash actionscript-3 preloader


【解决方案1】:

简而言之,在加载时,flash 播放器将从第 1 帧开始,并会一直停留在那里,直到第 1 帧中的所有数据都已加载完毕。只有这样它才会进入下一帧。您可以通过选中“File->Publisher Settings”下“Flash”选项卡中的“Generate Build Report”复选框来获得有关导出到每个帧的数据字节数的详细报告

要进行简单的加载显示,请在第 1 帧中添加一个名为“loader_txt”的 TextField,然后添加以下代码:

  stop();

  this.addEventListener(Event.ENTER_FRAME, loading);

  function loading(e:Event):void{

      var total:Number = this.stage.loaderInfo.bytesTotal;
      var loaded:Number = this.stage.loaderInfo.bytesLoaded;

      loader_txt.text = Math.floor((loaded/total)*100)+ "%";

    if (total == loaded){
      play();
      this.removeEventListener(Event.ENTER_FRAME, loading);
    }

  }

要确保您的资源和动作脚本代码导出到第 1 帧之后,以便在 Flash 电影开始加载时立即启动上述代码,请转到“文件->发布设置”,选择“Flash”选项卡,然后单击“设置...”按钮位于“脚本”右侧。应该会出现一个对话框。在该对话框中,在“Export classes in frame:”下,输入 2。

对于库中的资产,您可能需要做类似的事情。右键单击库资产并选择属性,您将看到取消选中“在第 1 帧中导出”的选项。如果取消选中它(这意味着 Flash 电影可以在加载此资源之前开始播放),则必须确保在时间线中的第 1 帧之外的某个位置对该符号有引用,否则 Flash 将从编译中忽略它。

祝你好运!

【讨论】:

  • 谢谢,“脚本”右侧的“设置...”按钮。应该会出现一个对话框。在那个对话框中,在“Export classes in frame:”下,输入 2。”正是我想要的。现在我知道为什么我遇到问题了。它现在设置为 1。
  • +1,您的回答比我的要好 :) 我试图考虑导出到与第一个不同的帧的规则,但记不太清楚,无法给出建议。今天早上我的大脑还为时过早:P
  • 好吧,尽管如此,我仍然遇到同样的问题。仅供参考,即使我已经完成了它所要求的操作,我也会收到警告:“应该为任何可以在运行时编辑的文本嵌入字体,而不是具有“使用设备字体”设置的文本。使用文本 > 字体嵌入嵌入字体的命令。”
  • 看起来您刚刚下拉的 TextField 使用的字体不是系统字体,需要嵌入。您使用的是什么版本的 Flash IDE?较新的 Flash IDE 除了“经典文本”选项外,还具有“TLF 文本”选项。为了简化,现在使用经典文本并将其设置为使用设备字体。
  • 对于预加载器本身,您是否尝试过“生成大小报告”并查看您的大部分数据是否仍在第 1 帧上?如果您也将结果粘贴到此处,可能会有所帮助。
【解决方案2】:

外部。有了适当的安全权限,您应该能够在几乎任何环境中将内容从远程位置加载到 shell 中。

您在使用内部加载器加载时看到的延迟可能是由您在运行时为 actionscript 导出的库资产引起的。它们将被导出到第一帧。在加载该帧之前,您看不到任何预加载,并且一旦完成导出这些资产,您的预加载器逻辑将跳转到第一帧的加载百分比。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多