我试图这样做:
var player:Player = new Player(); // class Player extends PlayerCore
var playerCore:PlayerCore = cast (player, PlayerCore);
var playerStr:String = Serializer.run(playerCore);
编译,但给出了运行时错误:
compile_server.command: line 3: 4267 Bus error: 10 ../bin/Server/Main
Cast工作,它在序列化程序行上失败。除了Std.is(playerCore, PlayerCore)
和Std.is(playerCore, Player)
都是正确的,我不知道它是否是预期的结果。这是Haxe / hxcpp的错误还是我做错了什么?
或者,我需要将Player类型的对象转换为它的父类型PlayerCore("剥离它"播放器类型功能),然后将其序列化。有没有办法正确地做到这一点,还是我需要创建新对象并手动复制所有参数?
Haxe 3.2.1,hxcpp 3.2.180,mac target