I was wondering what's the difference between different types of casting. So I made some tests
var test1:Number;
trace( test1 as String); trace( test1.toString()); trace( String(test1));
//Output:
//null
//NaN
//NaN
OK, so we have two types casting. While 'as' returns us not defined String type (casted value also was not defined), standard casting creates instance that tries to use data casted type
var test1:Number;
trace( test1 as String); trace( test1.toString()); trace( String(test1));
//Output:
//null
//NaN
//NaN
OK, so we have two types casting. While 'as' returns us not defined String type (casted value also was not defined), standard casting creates instance that tries to use data casted type
Let's try the opposite way. But this time on defined instance
var test2:String = '100';
trace( test2 as Number);
trace( Number(test2));
var test2:String = '100';
trace( test2 as Number);
trace( Number(test2));
//Output:
//null
//100
Casting give us instance with data gathered from base class. But 'as' operator one more time returns null. I wondered how does it work. And I found. Check this example:
//null
//100
Casting give us instance with data gathered from base class. But 'as' operator one more time returns null. I wondered how does it work. And I found. Check this example:
var test3:Sprite = new Sprite();
trace( test3 as DisplayObject);
trace( test3 as MovieClip);
trace( test3 as DisplayObject);
trace( test3 as MovieClip);
Operator 'as' is concatenation of checking type of data and casting data. It casts only when base type is descendant of casted type. If expression is inherits casted class then it's returned. Otherwise it returns null
No comments:
Post a Comment