- 2009-04-09 (木) 20:03
- action script
JSON から hoge=”true” という値を受け取った時、ActionScript 上で条件分岐させるケースで
- if(hoge==true) はダメ(false)
- if(hoge==”true”) は OK (true)
- if(hoge) は
OK (true)これやるとヤバい
ってのにちょっとつまづきました。(ストリング扱いなのに3の boolean 判定が通るとこが。)
追記:
コメント戴きました通り、3の if(hoge) は hoge になんらかの文字列が代入されてさえいれば、たとえ hoge=”false” でも true 判定になるので3みたいなことはやらないこと。
いやはや、まだこんなことでつまづくかw。
おまけ:hoge=0;の時 if(hoge) は false 評価するってのもありましたね。ついうっかりハマってしまうことがあるのは、まだまだコードを書き足りていないせいですね。
- Newer: TextField が思いのほか細長くなったら
- Older: Pearl Jam Ten Game
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
-
メモがてら書いたエントリが勘違いエントリだとはお恥ずかしいです!
補足いただきどうもありがとうございます。






![Flash Math & Physics Design:ActionScript 3.0による数学・物理学表現[入門編]](http://ecx.images-amazon.com/images/I/617sNhK9P9L._SL75_.jpg)


![FLASH ActionScript 2.0入門完全ガイド+実践サンプル集 [CD-ROM付]](http://ecx.images-amazon.com/images/I/51915J1BG6L._SL75_.jpg)


