Creating weak references in Actionscript 3

A weak reference is a reference that does not prevent the object from being garbage collected. It’s great that Actionscript 3 has weak references in the EventDispatcher and Dictionary classes. But sometimes you want to create your own weak references. Something along the lines of

var weak:WeakRef = new WeakRef( someObject );

Well, there is a way. It’s a bit of a hack, and unfortunately uses a full Dictionary object for each weak reference, but it works. The source code is on my public GitHub repository.

To use the class

// Create a weak reference
var weak:Weakref = new WeakRef( obj );

// Later use the referenced object
var strong = weak.get();
if( strong != null )
{
    // use strong here
}
else
{
    // garbage collector has disposed of the object
}

If the get method returns null then the object has been garbage collected.

The source is free under the terms of the MIT licence.

2 thoughts on “Creating weak references in Actionscript 3

  1. Pingback: OOP Best Practices: Delegation - blog.ch

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>