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型にキャストされるので、期待通りの動作になった。