色々忙しくて絶賛放置中ですこんにちは。
新作アプリも8割位できてます。
メインは終わっててあとはバランス調整と各種イラスト素材ですね。
このアプリのためにペンタブも購入したので頑張ります!
さて本題ですが今回はFlashLite1.1ならではのクソ仕様バグについて。
a = 1;
A = 2;
trace(a);
trace(A);
突然ですが上記コードを実行するとどうなると思いますか?
普通のプログラムならtraceの結果は1と2になるはずです。
だがしかし、FlashLite1.1でこれを実行すると
両方2
!?
なん・・・だと・・・!?
な… 何を言っているのか わからねーと思うが(ry
結論から言いますと
FlashLite1.1の変数は大文字と小文字を区別しない!
hensu = 1;
HENSU = 2;
↑こんなのも同じ変数としてみなされてしまうのですoh・・・
だからなんだ、こんな紛らわしい変数名つけねーよ!
と思うかもしれないですがこれが原因のバグを最近体験したので書いてみました。
ソーシャルゲーム業界の人は他人ごとではないかも?しれないです。
myHensu とか大文字を挟む書き方って割とあるじゃないですか?
この書き方で全て統一していればいいのですが記述ミスで一部だけ
myhensu とかになっていたらさぁ大変。
ガラケーは別にいいのです、同じ変数として使っている分には何も変わらないので。
問題はスマホ対応の時、PostExgameなど変換エンジンを使いますよね?
するとどうなるか・・・?
変換エンジンでJavaScriptに書き換えられたコードは上記部分を別の変数とみなして動作してしまいます。
結果想定していた動きをしてくれずバグが起こってしまいます。
仕様がルーズすぎるゆえのバグを体験しました。
ローカルでは動く分、余計にたちが悪いやつですね。
FlashLite1.1と変換エンジンを使うことで起こる稀なバグとして覚えておくといいことがあるかもしれないです。
そんな今日このごろ、南国人もうだる暑さですね。