【问题标题】:Loading multiple external SWFs within a main swf在主 SWF 中加载多个外部 SWF
【发布时间】:2018-06-26 05:36:51
【问题描述】:

我正在构建一个网站,可以在一个主 swf 中加载多个 swf。当我单击位于其上的按钮时,我还希望卸载一些 swfs。

有人可以帮我解决这个问题吗?

目前我只能用这段代码加载一个 swf,我可以在默认情况下加载更多的 swf 吗?你可以看到下面的代码:

var swf:MovieClip;
var loader:Loader = new Loader();

var defaultSWF:URLRequest = new URLRequest("swf/gallery.swf");
loader.load(defaultSWF);
addChild(loader);

【问题讨论】:

    标签: flash actionscript-3


    【解决方案1】:

    如果您尝试一次加载多个 SWF,您只需创建多个 Loader 对象,然后加载到它们中。

    例如:

    var gallery:Loader = new Loader();
    gallery.load(new URLRequest("swf/gallery.swf"));
    addChild(gallery);
    
    var other:Loader = new Loader();
    other.load(new URLRequest("swf/other.swf"));
    addChild(other);
    

    至于卸载 SWF - 您只需要引用 Loader 对象并调用它的 unloadAndStop 方法即可。

    【讨论】:

      【解决方案2】:

      作为对 Branden 答案的补充,如果您想按顺序加载项目,您可以重用相同的 Loader 实例,并具有以下内容:

      var gallery:MovieClip;
      var other:MovieClip;
      var swfClips:Array = [gallery,other];
      var swfUrls:Array = ['swf/gallery.swf','swf/other.swf'];
      
      var loader:Loader = new Loader();
      loader.contentLoaderInfo.addEventListener(Event.INIT, loaderReady);
      loader.load(new URLRequest(swfUrls[0]));
      
      function loaderReady(event:Event):void{
          swfClips[0] = MovieClip(event.target.content);
          if(swfUrls.length){
              swfClips.shift();
              swfUrls.shift();
              loader.load(new URLRequest(swfUrls[0]));
          }else{  trace('all swfs are loaded');   }
      }
      

      【讨论】:

        最近更新 更多