ByteArray - 错误 #2058:解压缩数据时出错

ByteArray - Error #2058: There was an error decompressing the data

我正在为我正在制作的游戏制作数据格式化程序。这是一款格斗游戏,它会导入格式化和压缩的 character/stage 数据,如果我决定制作 DLC 或扩展内容,这让我更容易制作。它还将数据加载保持在最低限度!

无论如何,这就是我的打算:

character/stage需要 1 个精灵 sheet 和 1 个元数据 JSON

  1. 从图像中提取位图数据并保存到变量中
  2. 使用 xor 和 base64 加密的组合(解密很好)加载和加密 JSON 字符串
  3. 创建对象并将它们都放入其中 -> { sheet: [bitmapData], meta: [cryptString] }
  4. 将其全部写入 ByteArray 并使用 byteArray.compress();
  5. 进行压缩
  6. 将字节数组写入文件并保存

我认为这相当简单,但是当我尝试解压缩其中一个文件时(当然使用 byteArray.uncompress();),我在 FlashDevelop 中收到此错误:

[Fault] exception, information=Error: Error #2058: There was an error decompressing the data.

但是,就在这之前,它正确地跟踪了数据!

loaded ucd name: dummy
loaded ucd json: {"stats":{},"hitboxData":{},"animationData":{},"name":"dummy"}

这是一个错误吗??我需要担心它搞砸了什么吗?如果我最终要制作扩展角色,我希望能够使这个数据格式化程序成为一个 public 工具,这样人们就可以在自己的角色或阶段上工作,比如 MUGEN,但更容易。

抱歉,如果这太详细或其他什么,但这是我第一次提出问题,我想确保没有误解:>

没关系,我终于知道那是什么了!出于某种奇怪的原因,加载器我使用了 运行 onComplete 函数两次……至少它看起来像——所以它尝试解压缩数据两次。我没有 运行 onComplete 两次或任何事情,所以这很奇怪。

仍在尝试找出造成这种情况的原因,但现在,我只是制作了一个 resetLoader() 方法,它关闭加载程序并使所有变量无效。工作得很好。