Flexコンパイラのバグか何かかも知れんし、ちゃんと説明可能な仕様かも知れんが、
下のソースを実行すると、
- package
- {
- 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
なんで、メンバ変数だけNumber型が0になるんだ?
何故これに気付いたかと言うと、Box2DAS3のサンプルソース「TestBed\Test.as」に同じコードがあり、動かなくて困ったからだ。