[Flash] NaN と比較演算子

AS2での話だと思うんだけど

[js] NaN >= 1; // true [/js]

この判定おかしくね?

調べたらここにあったよ。 http://www.fumiononaka.com/TechNotes/Flash/FN0108015.html

NaNを使った数値の比較演算子(<=,>=)は、なんか変な感じとのこと。

FLVのダウンロード状態を監視するタイマーが [js] var loadedRatio:Number = ns.bytesLoaded / ns.bytesTotal; if( loadedRatio >= 1 ) { //監視終了 } [/js] みたいな判定式で抜けるようなプログラムを書いていたんだけど 数回に1回、タイマーが1発目で終了しているバグが見つかって 追求したらNaNのせいだった。

これからは、NaNが入る可能性があるNumber型の変数を条件に使う場合は [js] if( !isNaN(loadedRatio) && loadedRatio >= 1 ){} [/js] とするようにしよう。

ちなみにAS3は期待通りの挙動らしい。

関連記事

  1. Flash Lite2.0 開発事はじめ
  2. Flash CS3
  3. Flash FrameWorkメモ
  4. 複数のフラグチェック
Posted in actionscript2.0, 日記 at 11月 16th, 2007. Trackback URI: trackback

No Responses to “[Flash] NaN と比較演算子”

Leave a Reply