У меня работает так:

Код AS3:
package {
import flash.display.Loader;
import flash.display.Sprite;
import flash.events.Event;
import flash.net.URLRequest;
import flash.system.ApplicationDomain;
import flash.system.LoaderContext;
import flash.utils.setTimeout;
/**
* @author etc
* @version 1.0
* @playerversion Flash 10
* @langversion 3.0
*/
public class GameLoader extends Sprite {
public function GameLoader() {
super();
this._loader = new Loader();
this._domain = new ApplicationDomain(ApplicationDomain.currentDomain);
this._loader.contentLoaderInfo.addEventListener(Event.COMPLETE, this.handler_complete);
this._loader.load(new URLRequest('Game.swf'), new LoaderContext(false, this._domain));
}
/**
* @private
*/
private var _loader:Loader;
/**
* @private
*/
private var _domain:ApplicationDomain;
/**
* @private
*/
private function handler_complete(event:Event):void {
this._loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, this.handler_complete);
trace(this._loader.content is IGame); // true
}
/**
* @private
*/
private function unload():void {
this._domain = null;
this._loader.unloadAndStop(true);
this._loader = null;
}
}
}
Единственное что из домена Game не пропадает, поэтому его занулять приходится, хотя помнится при такой же схеме у нас пропадал. Можно попробовать грузить в текущий.