Generally (as noted in my post about optimization here), using the “as” operator is faster (and IMO a little more elegant), but should be used only when the object to be cast shares a superclass with the constructor class. This is very handy when casting event.target or the DisplayObject returned by getChildAt as instances of ‘MyClass’.

When attempting to cast something that does not share a relationship, the Constructor(obj) method is required.

There’s a somewhat misleading warning in the CS compiler when passing multiple arguments to Array (without the ‘new’ keyword) that seems to suggest casting using ‘as’ is preferred – I’m not sure this is accurate.