More than 1 year has passed since last update.

OpenFLでFlashと違う仕様(挙動)

みなさん、OpenFLを扱っていますか?
今回、HaxeのライブラリOpenFLのFlashと違う(挙動)について思いつくあたりをまとめてみました。

注:このリストは2013/12/15の時点での違う仕様・挙動一覧なので現在は違うかもしれません!
注2:全部を網羅しているわけではないです!

塗り潰しでの重なる部分

下記のようなコード

BFill.hx
class BFill extends Sprite
{
 function draw( )
 {
  var g = this.graphics;
  g.beginFill( 0, 1 );
    g.drawRect( 10, 10, 200, 200 );
    g.drawRect( 30, 30, 200, 100 );
  g.endFill( );
 }
}
  • Flash: 重なっている部分が透明になる
  • OpenFL: 重なったまま

ゼロ除算

FlashではNaNになりますが、他では例外を投げます

例外

例外メッセージは

  • Flash: 例外が投げられたことを知らせるダイアログが出る
  • HTML5: コンソールに出力
  • C++ / Neko: stdout(標準出力)に出力
  • Android: デバッグメッセージを出力

C++/Nekoの場合は(Windowsの場合) hoge.exe > hoge.txtでhoge,txtに出力できます。

TextFieldの半透明

C++ / Neko版だとSpriteのうえに乗せたTextFieldは半透明が聞かないようです

フォントに存在しない文字

フォントで用意されていない文字を表示したときは

  • Flash: 飛ばす
  • C++ / Neko: 豆腐が出てくる

mp3の再生

C++ / Nekoだと出来ないようです。
ogg vorbisを使うといいようです。

キーイベントのキーコード

KeyboardEvent.keyUpやkeyDownなどで飛んでくるキーコードが違う

  • Flash: すべて大文字のキーコード('A' = 65 'a' = 65)
  • OpenFL: CapsLockの状態に依存( 'A' = 65 'a' = 97 )

日本語入力

  • Flash: 出来る
  • OpenFL: 出来ない。いつかできると信じて・・・

最後に

あわてて書いたので間違いがあるかもしれないです
明日は現時点では決まってませんが、よろしくおねがいします!