您需要使用 UrlLoader 加载远程 SWF,然后通过 loadByte 重新加载。使用这种方法,您将通过安全性。
package
{
    import flash.display.Loader;
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.net.URLLoader;
    import flash.net.URLLoaderDataFormat;
    import flash.net.URLRequest;
    import flash.system.ApplicationDomain;
    import flash.system.LoaderContext;
    public class TestDistantSwf extends Sprite
    {
        private var _urlLoader : URLLoader = new URLLoader;
        private var _loader : Loader = new Loader;
        public function TestDistantSwf()
        {
            addChild(_loader);
            // Won't work
            //_loader.load(new URLRequest("http://localhost/test.swf"));
            // Load it as binary
            _urlLoader.dataFormat = URLLoaderDataFormat.BINARY;
            _urlLoader.addEventListener(Event.COMPLETE, onLoad);
            _urlLoader.load(new URLRequest("http://localhost/test.swf"));
        }
        private function onLoad(e : Event) : void
        {
            // Load distant swf data locally
            _loader.loadBytes(_urlLoader.data, new LoaderContext(false, ApplicationDomain.currentDomain));
        }
    }
}
如果你需要像 flash var 这样传递参数,有两种方法,如果使用 Air 2.6 或更高版本,你可以使用 LoaderContext.parameters :
private function onLoad(e : Event) : void
{
    var lc : LoaderContext = new LoaderContext(false, ApplicationDomain.currentDomain);
    lc.parameters ={
        foo:"hello !"
    };
    lc.allowCodeImport = true;
    // Load distant swf data locally
    _loader.loadBytes(_urlLoader.data, lc);
}
然后在加载的 SWF 中使用 loaderInfo.parameters 获取它。
或者您可以调用已加载的 Swf 函数:
private function onLoadBinary(e : Event) : void
{
    e.target.content.init("hello 2 !");
}
private function onLoad(e : Event) : void
{
    var lc : LoaderContext = new LoaderContext(false, ApplicationDomain.currentDomain);
    lc.allowCodeImport = true;
    // Load distant swf data locally
    _loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoadBinary);
    _loader.loadBytes(_urlLoader.data, lc);
}
这将从其主类中加载的 swf 调用:
public function init(foo : String) : void
{
    trace(foo);
}