组织,加密,压缩外部资产并在运行时加载它们

时间:2012-06-21 01:42:27

标签: actionscript-3 flash air flash-cs5

好的,我不确定这个话题是否足够明确。我正在制作基于Flash的单人游戏。它是一个可执行文件(AIR应用程序),可以直接安装和运行,不能在浏览器上播放。所以,我有大量的图像,视频和内容,最近我开始使用Loader类在外部加载它们。发布的AIR安装程序不介意外部的东西,所以我在安装后手动复制它们。这从一开始可能是错误的,但我不知道如何将它们合并。我可能会稍后想出来,这不是主要问题,但如果你回答这个问题,我会感激不尽。

无论如何,真正的问题是,我不希望玩家看到存储在资源文件夹中的游戏中使用的图像和视频。有没有办法可以将它们加密或隐藏在某些类似软件包的文件中(比如许多盛大游戏中的.DAT文件)?所以普通玩家无法访问或搞砸他们。当然,我仍然可以在运行时加载它们。

我抬头看了.SWC格式。但是,我认为这不是我想要的。任何人都可以轻松地将该文件导入Flash项目。

2 个答案:

答案 0 :(得分:0)

即使在Flash中也可以使用[嵌入]元标记。如果您不想从Flex SDK中提取一些小类,可以使用几种技术,例如您在此处看到的http://nascode.com/2010/02/01/embedding-asset-at-compile-time-in-pure-as3-project/

请注意,以这种方式嵌入的资源必须嵌入到第N帧(取决于你的fla / xfl设置)。你无法在瑞士法郎的整个生命周期内分摊他们的负担。

答案 1 :(得分:0)

您可以使用[嵌入]将小资源放入您的应用中。但对于大型资产,我会使用加密资产的zip文件。 (未加密的拉链,因为它们会占用大量内存来解密,但会加密单个文件。)我使用 airxzip 进行压缩(支持处理档案中的单个文件)和 as3crypto 关于ActionScript中唯一的加密库。使用像RC4这样的对称算法,它足够快(第二次解密10-20 MB) 您需要一个密钥来加密资产。如果您将它们用于激活,它可以硬编码到app或从序列号解码 此外,档案可以命名.DAT或以某种方式更加神秘,以吓跑WinZip用户:)