AS3 “with” keyword and casting
Monday, July 12th, 2010I’ve rarely (if ever) used the “with” keyword in as3, but I recently found a neat trick to use it with.
When I quickly need to cast an object to access a few methods/properties I don’t always want to
create a new casted variable:
var child:DisplayObject = getChildThatMightBeMovieClip(); if (child is MovieClip) { var childAsMc:MovieClip = child as MovieClip; trace(childAsMc.numChildren); trace(childAsMc.currentFrame); }
or cast it every single time:
var child:DisplayObject = getChildThatMightBeMovieClip(); if (child is MovieClip) { trace((child as MovieClip).numChildren); trace((child as MovieClip).currentFrame); }
Using the “with” keyword, we can temporarily cast it without creating a temporary casted variable or casting it again and again:
var child:DisplayObject = getChildThatMightBeMovieClip(); if (child is MovieClip) { with (child as MovieClip) { trace(numChildren); trace(currentFrame); } }
Elegant =)