нет... вы сами себя путаете... все гораздо проще.

Код:
import mx.utils.Delegate;
class XMLLoader extends XML {
public function XMLLoader(s:String)
{
super(s);
ignoreWhite = true;
onLoad = onLoadDelegate;
//onLoad = Delegate.create (this, onLoadDelegate);
//будет работать одинаково, область видимости та же
}
public function onLoadDelegate(b:Boolean):Void
{
if (b) {
trace(toString());
} else {
trace('error!');
}
}
}

Код:
import XMLLoader;
import mx.utils.Delegate;
var xl:XMLLoader = new XMLLoader();
xl.onLoad = Delegate.create(this, overrideDefaultOnLoad);
// изменит область видимости
xl.load('foo.xml');
var foo:String = 'bar';
function overrideDefaultOnLoad(b:Boolean):Void
{
trace(foo);
trace(xl);
}