0

私はこれをやろうとしています:

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 ターゲット

4

0 に答える 0