You should use Delegate so that your even handlers get called in the scope that you want.
First, let's take a look on the code below:

What we have is a class that loads a url and then calls a private onLoad which then triggers the user onLoad. The problem is that _onLoad is called in the scope of the MovieClipLoader instance rather than our Loader instance - meaning "this" will refer to the MovieClipLoader instance and we cannot access our Loader instance. So the nasty hack is to add a reference to the Loader on the MovieClipLoader. The compiler doesn't like this, so then we have to use the array syntax to assign the reference. Now we are creating a hack to cover up our original hack and the code is getting uglier by the character.
loader['back_ref'] = this;
So, then our _onLoad gets called and we can't use "this". So we have to get "this" from the reference. Not only is this ugly, but makes your code harder to read and understand.
var t = this['back_ref'];
Using Delegate can make this code much nicer and easier to read because you can tell it what scope to call your method in. Like this:

Related Articles
- Proxying Events with the mx.utils.Delegate Class (Macromedia.com)
- EventProxy vs mx.utils.Delegate (moock.org)
