ゼットコードログ

コード的な何かを書いていきます。

OpenFLのサンプルでエラー

注) Haxeのバージョンが3.1.3以上の場合は特にソースを修正しなくても正常に動作します。

OpenFLのサンプルを実行しようとするとエラーが発生。 例えば、描画のベンチマーク的なことができるBunnyMarkをbuildすると、こんなメッセージが出てきます。

$ lime create openfl:BunnyMark
$ cd BunnyMark
$ lime build project.xml flash

そもそものopenFLのコード自体がおかしいらしい。次のバージョンで修正される、的なこともネットの情報にはありますが、自分で直してしまおう。

/usr/lib/haxe/lib/openfl-native/1,3,0/flash/utils/ByteArray.hx:276: lines 276-294 : Field readDouble should be declared with 'override' since it is inherited from superclass
/usr/lib/haxe/lib/openfl-native/1,3,0/flash/utils/ByteArray.hx:276: lines 276-294 : Field readDouble overloads parent class with different or incomplete type
/usr/lib/haxe/lib/openfl-native/1,3,0/flash/utils/ByteArray.hx:276: lines 276-294 : Void -> Float should be pos : Int -> Float
/usr/lib/haxe/lib/openfl-native/1,3,0/flash/utils/ByteArray.hx:308: lines 308-326 : Field readFloat should be declared with 'override' since it is inherited from superclass
/usr/lib/haxe/lib/openfl-native/1,3,0/flash/utils/ByteArray.hx:308: lines 308-326 : Field readFloat overloads parent class with different or incomplete type
/usr/lib/haxe/lib/openfl-native/1,3,0/flash/utils/ByteArray.hx:308: lines 308-326 : Void -> Float should be pos : Int -> Float

まずはByteArray.hx

Fix OpenFL part 1

次にインターフェースのIDataInput.hxも一緒に直しておく。

Fix OpenFL part 2

さらに neko でbuild した場合に次のようなエラーも出たのでこっちも直しておく。

/usr/lib/haxe/lib/openfl-native/1,3,0/openfl/utils/ArrayBufferView.hx:90: characters 9-28 : Not enough arguments
/usr/lib/haxe/lib/openfl-native/1,3,0/openfl/utils/ArrayBufferView.hx:90: characters 9-28 : Function 'readFloat' requires arguments : position

ただ、この修正で本当にあっているかは謎w あとはやってて、何か問題出たら調べよう。

Fix OpenFL part 3

これで動いた。内容的には単なる記述ミスですね。 そしてこのBunnyMarKは実行してもらうとわかりますが、色々と負荷測定とかするのに便利そう。 これを用途にあわせてカスタマイズしていけばいいのだと思う。 絵がカッコ悪いからそのへんもいい感じに変えてみよう。