hoge=”true”を受け取る時

JSON から hoge=”true” という値を受け取った時、ActionScript 上で条件分岐させるケースで

  1. if(hoge==true) はダメ(false)
  2. if(hoge==”true”) は OK (true)
  3. if(hoge) は OK (true)これやるとヤバい

ってのにちょっとつまづきました。(ストリング扱いなのに3の boolean 判定が通るとこが。)

追記:
コメント戴きました通り、3の if(hoge) は hoge になんらかの文字列が代入されてさえいれば、たとえ hoge=”false” でも true 判定になるので3みたいなことはやらないこと。
いやはや、まだこんなことでつまづくかw。

おまけ:hoge=0;の時 if(hoge) は false 評価するってのもありましたね。ついうっかりハマってしまうことがあるのは、まだまだコードを書き足りていないせいですね。

Comments:3

むらけん 09-04-09 (木) 21:01

Stringの強制Boolean変換は、””がfalseで、その他はtrueが返るので、if(“true”)はtrueになってるです。別にif(“t”)でもtrueです。

kaede 09-04-09 (木) 22:25

はじめまして。
むらけんさんも仰られているとおり、3はBooleanに変換する仮定でAS3は””以外のStringは全てtrueになります。
AS3は0や1を判断してBooleanに変換できますが、Stringを読み取ってture,falseを判断する術をネイティブに持ち合わせていないようです。(なんでないんだろう・・・。あったらスイマセン。)
ここは逆に考えて、true.toString() == hogeのように、Boolean側をStringに変換して判定するのが良いかと思われます。

tera 09-04-09 (木) 23:39

メモがてら書いたエントリが勘違いエントリだとはお恥ずかしいです!
補足いただきどうもありがとうございます。

Comment Form
Remember personal info
AS3習得本
AS3の全容を学習できる本。この中でどれか1冊自分に合ったものを。
Adobe Flash CS4 詳細!ActionScript3.0入門ノート ActionScript3.0 プロフェッショナルガイド 初めてのActionScript 3.0 Flashユーザーのためのステップアップガイド 詳説 ActionScript 3.0 Actionscript 3.0 Cookbook
AS3発展本
ASでアニメーションさせる面白さを知るための本。
Flash Math & Physics Design:ActionScript 3.0による数学・物理学表現[入門編] ActionScript 3.0 アニメーション AdvancED ActionScript 3.0 Animation (Advanced)
AS2
"Flash"ではなく"ActionScript2.0"学習のための良著。他にもいろいろ読んだけど、この4冊を読んだ後、自分が成長できた感じがしました。
FLASH ActionScript 2.0入門完全ガイド+実践サンプル集 [CD-ROM付] Essential Actionscript 2.0 Flash 8 Essentials Foundation Actionscript Animation: Making Things Move (Foundation)

あわせて読みたいブログパーツ

相互リンク

hi-posiさん
携帯Flashといえばhi-posiの岡田昇三さん。FlashLiteの有益な記事もたくさん書かれていていつもお世話になってます。ついにご挨拶させていただきました。面白すぎる人でしたw。

Return to page top