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 =)