序列化的作品,但反序列化崩溃

问题描述 投票:5回答:1

我试图建立在我的HaxeFlixel游戏保存功能。

一些背景资料:有问题的目的是Player的一个实例,其延伸FlxSprite。保存数据存储在我为它做了一个自定义的类的实例。该实例存储在StringMap(键是保存的名字),它是通过在FlxSave它序列化到一个变量保存。

创建保存数据并写入它工作正常。然而,读取数据保存回在崩溃的游戏消息“无效的字段:像素”。 pixels是FlxSprite一个领域,但它不是序列化的字符串的第一个这样的领域,所以它可能不是。

如果它是有用的,该字段的声明是y6:pixelsn - 那就是:

  • y开始一个字段,它被命名为...
  • 6:长度为6的字符串...
  • pixels(字符串)
  • n
haxe haxeflixel
1个回答
3
投票

this line of code你可以看到,pixels其实并不是在运行时可变*。所以,当它试图将值分配给pixels的unserializer会崩溃。但更多的调查需要,为什么串行放在第一位序列化的pixels领域,因为它真的不应该在运行时存在。

注*:pixels的访问器是(get, set),这使得pixels不是房地产在运行时。阅读更多here

作为一般规则,我不建议直接序列化一个FlxSprite(或其他复杂的对象)。相反地​​,应提取所需的信息(例如,x / y位置或马力等),只有那些序列。

© www.soinside.com 2019 - 2024. All rights reserved.