1 2 3 4 5 6 7 8 9 |
var i:Number;// Number型かどうか判定trace( i is Number ); // 自信がMovieClipか、またはMovieClipクラスを継承しているか。 trace( this is MovieClip ); // 自信がSpriteか、またはSpriteクラスを継承しているか。 trace( this is Sprite ); |
とすることで、自信が何者なのかとかを判定できます。昔はinstanceof演算子を使っていましたが、これからはis演算子を使いましょう。
なぜかというと、NumberではなくMovieClup/Spriteのテストのコードをみてください。
自分が継承しているクラスに対しても判定することが可能です。
ちなみに、MovieClipクラスはSpriteクラスを継承しています。
一応コード含めたFLAはこちら
as演算子
1 2 3 4 5 6 7 |
var mySprite:Sprite = new Sprite();trace(mySprite as Sprite); // [object Sprite] trace(mySprite as DisplayObject); // [object Sprite] trace(mySprite as IEventDispatcher); // [object Sprite] trace(mySprite as Number); // null |
is演算子とは別にas演算子という演算子があります。
「as 演算子はブール値を返しません」とマニュアルには記載されています。どういうことか。
つまり継承しているクラスについてis演算子のようにいちいち返してくれません。ture/falseではなく、そのオブジェクト型を返します。もし違うときはfalseではなくnullを返却します。
わざわざこういう演算子が用意されている部分に香ばしさを感じますね・・。
is演算子 as演算子