【问题标题】:How To Create a Preloader to a Flash Game如何为 Flash 游戏创建预加载器
【发布时间】:2013-06-26 04:00:23
【问题描述】:

我刚刚开始接触 Flash 游戏编程。我知道如何制作一个正常运行的项目,但不知道如何使其高效或完成特定任务,在这种情况下如何添加预加载器。我在网上找到了几个教程,但没有一个与我所看到的相一致的是最好的编程方法。从我所见,最好将我的所有代码编程到一个 .as 文件中,并将该文件链接到主文档。这使我可以轻松地将所有变量设置为全局范围,这让我可以在各种不同的函数中添加/删除孩子。唯一的问题是我找不到使用这种方法创建预加载器的教程。我发现的所有教程通常在时间轴上都有两帧,一帧带有预加载器,一帧带有内容,但有人告诉我这不是一种好的编程方式。如果有人可以提供帮助,我将不胜感激。如果有助于回答我的问题,我可以粘贴我的一个学习项目的源代码。

【问题讨论】:

  • 如果你想做一个预加载器,你要么必须做 2 帧,然后在第 2 帧导出你的所有资源(文件设置中的一个选项),或者把你的外部文件中的资产并加载它。
  • 如果您查看我为 AS3 游戏制作的引擎中的 this class,您会发现我什至在 MainTimeline 上强制要求 2 帧。
  • 嗨,例如,我有我的所有代码和我在 .as 文件中使用的所有内容。我是否会保持一切不变,只需添加预加载器的代码并更改设置以在第 2 帧上导出资产?如果是这样,你能推荐一个关于如何使用这种方法实现预加载器的好教程吗?
  • 我不知道任何教程,但很快有人会在答案中解释它。
  • 我找到了这个网站:asgamer.com/2009/… 它似乎信息量很大。我明天试试。如果有人可以查看该网站并告诉我这是否可行,或者您是否知道更好的网站,谢谢。

标签: actionscript-3 flash preloader


【解决方案1】:

我不会采用 2 Frame 方法。相反,只需使用您的文档类制作您的游戏,就像您所说的那样。
完成后,将编译好的游戏 swf 加载到加载器 swf 中。

下面是一个简单的示例,说明 loaderSwf 的外观:

import flash.net.URLRequest;
import flash.display.Loader;
import flash.events.Event;
import flash.events.ProgressEvent;

function startLoad()
{
   var mLoader:Loader = new Loader();//Or use ProLoader
   var mRequest:URLRequest = new URLRequest(“Game.swf”);
   mLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onCompleteHandler);
   mLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, onProgressHandler);
   mLoader.load(mRequest);
}

function onCompleteHandler(loadEvent:Event)
{
   addChild(loadEvent.currentTarget.content);
}
function onProgressHandler(mProgress:ProgressEvent)
{
   var percent:Number = mProgress.bytesLoaded/mProgress.bytesTotal;
   trace(percent);
}
startLoad();

(如果您将其用作文档类,则需要将其包装在一个包和类中)

【讨论】:

  • 如果我不需要将所有内容保存在一个文件中以用于 Flash 门户,则可以使用此解决方案。如果您想查看我在对主要问题的评论中发布的网站,它使用多个框架,但它只是作为一种解决方法,大多数代码仍在 .as 文件中。有空的时候我会检查它是否有效。
猜你喜欢
  • 2011-09-17
  • 2011-05-13
  • 2015-05-03
  • 2021-11-29
  • 1970-01-01
  • 1970-01-01
  • 2014-01-24
  • 2011-12-18
  • 1970-01-01
相关资源
最近更新 更多