在 AS3 中包含图像比嵌入更好的方法?

Posted

技术标签:

【中文标题】在 AS3 中包含图像比嵌入更好的方法?【英文标题】:Better way to include images in AS3 than embed? 【发布时间】:2011-12-21 17:57:35 【问题描述】:

我正在制作一个 Flash 游戏(使用 Flixel),我有很多 sprite,它们的图像(主要是 .png 格式)需要包含在我的游戏中。我习惯使用如下代码:

[Embed(source = "../../lib/ship-0001.png")]private var _ship0001Sprite:Class;

为了包含一个图像文件。除了嵌入之外,我还有其他方法可以做到这一点吗?如果可能,我想使用 for 循环,按编号获取每个需要的文件。这样,如果每种船类型都有几行(抓取它的精灵、图标、商店视图等),我可以只更改一个变量(例如 NUM_SHIP_TYPES)并按编号为新船添加文件。

在文件包含在 .swf 中的情况下,嵌入是唯一的方法,还是有其他方法可以做到这一点?或者有没有办法我可以使用 for 循环 with embed?

【问题讨论】:

【参考方案1】:

如果您有很多资源,最好的方法是将它们保留为外部文件并使用Loader 加载它们。

这样您就可以显示进度条,而且正如您所说,它还可以更轻松地管理您的资产。

【讨论】:

你的意思是Loader【参考方案2】:

您是想让对象在同一个 swf 中随时可用,还是要从外部加载它们。会是我想到的第一个问题。

如果您想在 swf 中嵌入图像:将它们全部添加到一个 fla 中,从它创建一个 swc 并在您的项目中使用它们。当你想改变一些东西时,改变fla。重新生成swc。重新编译。

如果您希望在运行时加载图像,请使用 UrlLoader,我个人更喜欢使用 LoaderMax,它是 greensock 包的一部分。它为您提供了更多使用加载的选项。这是一个可以帮助您的示例:http://www.greensock.com/loadermax-tips/

【讨论】:

【参考方案3】:

这可能不是一个受欢迎的答案。但这取决于偏好。 I'm not trying to start a best practices discussion, just listing a possibility.

如果每艘船都有多个图像。并且每艘船的图像数量相同,那么以下可能是可能的。如果没有,那就完全忽略我的建议。

为您的每种飞船类型创建一个文件夹,然后在该文件夹中创建一个类文件,并将您的图像与类文件一起放置在该文件夹中..

package shipimages.ship1  class Ship1Images 
    [Embed(source="0001.png")] public var img0001:Class;
    [Embed(source="0002.png")] public var img0002:Class;
    [Embed(source="0003.png")] public var img0003:Class;
 

.

package shipimages.ship2  class Ship2Images 
    [Embed(source="0001.png")] public var img0001:Class;
    [Embed(source="0002.png")] public var img0002:Class;
    [Embed(source="0003.png")] public var img0003:Class;
 

但正如我所说,这仅在小情况下有益,但这确实意味着一切都更加细分,如果您要制作接口,则可以轻松完成工厂模式。

【讨论】:

这实际上是一个好主意,尽管您可能是对的,这不是最佳实践。如果我这样做,每种船型都会有自己的文件夹,并且该船型的所有内容都将在该文件夹中。谢谢! 这些类文件可以通过简单的脚本或工具自动生成,只需更改文件名中的数字并将它们替换为预定义的模式。

以上是关于在 AS3 中包含图像比嵌入更好的方法?的主要内容,如果未能解决你的问题,请参考以下文章

如何在持续集成中包含谷歌基准

恢复 segued iOS UIViewControllers 的更好方法

在 R Markdown 文件中包含 HTML 文件?

Pandas / IPython Notebook:在数据框中包含和显示图像

AS3 从图块表中批量裁切图块的最佳方法?

在 Matlab 独立 GUI.exe 中包含多个文件夹(包含图像、脚本等)