-
Notifications
You must be signed in to change notification settings - Fork 1
Utilities
Zwetan Kjukov edited this page Mar 20, 2016
·
3 revisions
Bit of AS3 code that can be useful from time to time.
function fastformat( pattern:String , ...args:Array ):String
{
if( (pattern == null) || (pattern == "") ) { return ""; }
var len:int = args.length;
if( (len == 1) && (args[0] is Array) )
{
args = args[0];
len = args.length;
}
for( var i:int=0; i < len; i++ )
{
pattern = pattern.replace( new RegExp( "\\{"+i+"\\}", "g" ), args[i] );
}
return pattern;
}
usage
trace( fastformat( "hello {0}", "world" ) );
function getStackTraceAt():String
{
try
{
throw new Error();
}
catch( e:Error )
{
return e.getStackTrace();
}
return null;
}
usage
trace( getStackTraceAt() );
function traceDisplayList( container:DisplayObjectContainer, indent:String = "", options:Array = null ):void
{
var child:DisplayObject;
var i:uint;
var l:Number = container.numChildren;
var str:String;
for( i=0; i < l; i++)
{
child = container.getChildAt( i );
str = indent + "[" + i + "]: " + child.name + " = " + child;
if( options )
{
var j:uint;
var al:Number = options.length;
var m:String;
for( j=0; j<al; j++ )
{
m = options[j];
if( m in child )
{
str += ", " + m + ": " + child[m];
}
}
}
trace( str );
if( child && (child is DisplayObjectContainer) )
{
traceDisplayList( DisplayObjectContainer(child), indent + " ", options );
}
}
}
usage
traceDisplayList( displayObj );
see