Skip to content

Utilities

Zwetan Kjukov edited this page Mar 20, 2016 · 3 revisions

Utilities

Bit of AS3 code that can be useful from time to time.

Quick Format

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" ) );

Stack Trace

function getStackTraceAt():String
{
    try
    {
        throw new Error();
    }
    catch( e:Error )
    {
        return e.getStackTrace();
    }

    return null;
}

usage

trace( getStackTraceAt() );

Trace Display List

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

Reference

see

Clone this wiki locally