私はこれをやろうとしています:
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
キャストは機能しますが、シリアライザー行で失敗します。Std.is(playerCore, PlayerCore)
とが両方とも true であることを除いてStd.is(playerCore, Player)
、それが期待される結果かどうかはわかりません。これは Haxe / hxcpp のバグですか、それとも何か間違っていますか?
または、タイプ Player のオブジェクトをその親タイプ PlayerCore に変換し (Player タイプの機能を「取り除く」)、シリアル化する必要があります。これを適切に行う方法はありますか、それとも新しいオブジェクトを作成してすべてのパラメータを手動でコピーする必要がありますか?
Haxe 3.2.1、hxcpp 3.2.180、mac ターゲット