今やっているプログラムで、ちょっとハマったので覚え書き。
NetConnectionクラスを使って、ビデオプレイヤーを作っています。
対象のデータがストリーミングサーバからの動画なのか、ローカルの動画なのかを判断しようと、NetConnection.uriメンバ変数を使おうとした。ローカルではconnect(null)とするため、uriはnullになるのではと思ってた。実際にtrace(nc.uri)とすると画面には「null」と表示されるので、何の疑いもなく「if(nc.uri==null)」と書いてた。
だけど挙動を見ると様子がおかしい。結果false。trace(nc.url+”,”+(nc.url==null))としてみると
null
false
ってなぜー!
ふと思ってtrace(typeof nc.uri)と書いてみると、なんとstringだと。nullになってたんじゃなくて、文字列の「”null”」が入っていた。なんじゃそりゃー。
「if(nc.uri==”null”)」と書き直したらうまくいった。どういう仕様だ。ぷんぷん。