| Refresh | Home EGTry.com

type operators "as" "is" "instanceof"


DataTypeSprite.as

package {
	import flash.display.Sprite;
	
	import type.TypeCheck;

	public class DataTypeSprite extends Sprite
	{
		public function DataTypeSprite()
		{
			trace("started");
			TypeCheck.use_is(this);
			TypeCheck.use_instanceof(this);
			TypeCheck.use_as(this);
			
		}
	}
}


type\TypeCheck.as

package type
{
	import flash.display.DisplayObject;
	import flash.display.IBitmapDrawable;
	import flash.display.Shape;
	import flash.display.Sprite;
	
	public class TypeCheck
	{

		public static function use_is(obj:Object):void {
			trace("\n use \"is\" operator");
			
			trace("is Sprite? "+(obj is Sprite));
			
			trace("is DisplayObject? "+(obj is DisplayObject));
			
			trace("is IBitmapDrawable? "+(obj is IBitmapDrawable));
			
			trace("is Shape? "+(obj is Shape));
			
			trace("is Object? "+(obj is Object));
			
		}

		public static function use_instanceof(obj:Object):void {
			trace("\n use \"instanceof\" operator");
			
			trace("instanceof Sprite? "+(obj instanceof Sprite));
			
			trace("instanceof DisplayObject? "+(obj instanceof DisplayObject));
			
			trace("isnstanceof IBitmapDrawable? "+(obj instanceof IBitmapDrawable));
			trace("instanceof Shape? "+(obj instanceof Shape));
			trace("instanceof Object? "+(obj instanceof Object));
			
		}
		
		public static function use_as(obj:Object):void {
	
			trace("\n use \"as\" operator");
			trace(" as Sprite:"+ (obj as Sprite));
			
			trace(" as DisplayObject: "+ (obj as DisplayObject));
			
			trace(" as IBitmapDrawable: "+ (obj as IBitmapDrawable));
			trace(" as Shape: "+(obj as Shape));
			trace(" as Object "+(obj as Object));
			
		}
	}
}


trace_output

 use "is" operator
is Sprite? true
is DisplayObject? true
is IBitmapDrawable? true
is Shape? false
is Object? true

 use "instanceof" operator
instanceof Sprite? true
instanceof DisplayObject? true
isnstanceof IBitmapDrawable? false
instanceof Shape? false
instanceof Object? true

 use "as" operator
 as Sprite:[object DataTypeSprite]
 as DisplayObject: [object DataTypeSprite]
 as IBitmapDrawable: [object DataTypeSprite]
 as Shape: null
 as Object [object DataTypeSprite]