actionscript 3 - When to use either type casting or the "as" operator in AS3? -
i have seen quite bunch of codes casting objects 1 type type, using call "standard" casting, this:
var mydo:displayobject = loader.content; var mycastedmc:movieclip = movieclip(mydo); however as operator seems work same way, because when traced both objects same value:
var myasmc:movieclip = mydo movieclip; trace(myasmc,mycastedmc); //both outputs read [object maintimeline] so, difference between these two? when yo use as operator , when use "standard" casting?
you cast when cast succeed. if casting fails runtime error thrown. use 'as' produce soft cast never throw error. in case either cast succeed or default value of datatype returned (for object null). both casts meant used in different situations since misunderstood see 'as' being used when coder meant direct cast. if following cast coder not check or need check if cast has succeeded should have used direct cast. if following cast coder needs check if cast has succeeded, should use 'as'.
it should explained why hitman answer not correct. provided code assume success:
(getchildat(i) textfield).text=i.tostring(); meaning coder knows display list contains textfield object (or else error occur). in case direct cast recommended:
textfield(getchildat(i)).text = i.tostring(); if display list contains other object types 'as' can used:
var field:textfield = getchildat(i) textfield; if(field)//if null getchildat(i) not textfield { //field exist cast succeeded }
Comments
Post a Comment