FlashVarsで渡した数値の扱いについて

ハマったので自分用にメモしておきます。


FlashVarsに数値のパラメータを渡した時、Number型の変数に代入しても文字列のままになってしまう。

Number型を期待して処理すると期待通りの動作にならない。


class Hoge {
var cols:Number;
var rows:Number;

function Hoge() {
this.cols = _root.cols || 8;
this.rows = _root.rows || 3;
}
}

こうすると、cols,rowsはそれぞれ文字の"8"と"3"となってしまうため、このまま数値と足し算(+)すると文字列になってしまう。

引き算やかけ算・割り算は問題なし。


this.cols = Number(_root.cols) || 8;
this.rows = Number(_root.rows) || 3;

とすれば、Number型にキャストされるので、期待通りの動作になった。