AS3のメンバ変数(Number型)を割り算で初期化したら整数値になってた件
Flexコンパイラのバグか何かかも知れんし、ちゃんと説明可能な仕様かも知れんが、
下のソースを実行すると、
package
{
import flash.display.Sprite;
{
import flash.display.Sprite;
public class Sample extends Sprite
{
public var num:Number = 1 / 30;
public function Sample()
{
var num2:Number = 1 / 30;
trace(num);
trace(num2);
trace(1 / 30);
}
}
}
出力がこうなる。
0
0.03333333333333333
0.03333333333333333
0.03333333333333333
0.03333333333333333
なんで、メンバ変数だけNumber型が0になるんだ?
何故これに気付いたかと言うと、Box2DAS3のサンプルソース「TestBed\Test.as」に同じコードがあり、動かなくて困ったからだ。
カテゴリ:ActionScript




