如何正确加载多个外部 swf 文件?

How to properly load multiple external swf files?

我正在创建一个互动游戏。我现在有 6 个 swf 文件需要加载,我需要按顺序播放它们。

关于这个话题我有很多问题,这里是:)

第一个问题:如何在电影场景后加载外部 swf 文件?

在我的第 3 个 swf 文件中,我有一个电影场景,它将在大约 30 秒内完成。我知道延迟的方法,但是我已经上传到我的网站时,它是否能正常运行?

第二个问题:如何在用户开始玩游戏之前加载所有外部文件?

如何在让用户玩游戏之前一次加载所有 swf 文件?

这是我的部分代码示例:

import flash.events.MouseEvent;
import flash.display.MovieClip;
import flash.display.Loader;
import flash.events.Event;
import flash.net.URLRequest;

var myClip:MovieClip = root as MovieClip;
var externalClip:MovieClip;
var myLoader:Loader = new Loader();
var myLoader1:Loader = new Loader();

myLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,       loaderCompletedHandler);


function loaderCompletedHandler(evt:Event):void {
externalClip = myLoader.content as MovieClip;
externalClip.ext_btn.addEventListener(MouseEvent.CLICK,extCommunicate);

  function extCommunicate(evt:MouseEvent):void {
    trace("TEST");
    myLoader1.contentLoaderInfo.addEventListener(Event.COMPLETE, thirdloaderCompletedHandler);
    var newstring:String = "third.swf";
    var newREQ:URLRequest = new URLRequest(newstring);
    addChild(myLoader1);
    myLoader1.load(newREQ);
    myLoader1.x=40;
    myLoader1.y=20;
    removeChild(myLoader);
  }
}

function thirdloaderCompletedHandler(evt:Event):void {
    trace("YEAH");
}

var externalString:String = "external.swf";
var urlREQ:URLRequest = new URLRequest(externalString);

playbtn.addEventListener(MouseEvent.CLICK,swfLoad);
function swfLoad(evt:MouseEvent):void {
    addChild(myLoader);
    myLoader.load(urlREQ);
    myLoader.x=40;
    myLoader.y=20;
}

第三个问题:上面的代码是加载多个swf文件的正确方法吗?

许多问题... (1) 您可以通过 frame actions 而非 A​​S3 连接许多 swf 文件来加载它们。通过这种方式,您可以确保只有在上一部电影结束时才会加载下一部电影。或者,按照您的说法,您仅在第一个 "cinematic" 场景结束后才加载下一部电影。因此不要使用 "delays",因为根据用户在机器和带宽方面的配置,这会产生很大不同的结果。

(2) 您可以像预加载一部电影一样一次预加载所有电影,只是编写正确的代码,检查是否加载了 movie1,然后是 movie2 等等。

(3) 测试您自己的代码并验证它是否有效。如果不是,请尽可能多地了解错误消息和条件,并在 Whosebug 此处打开另一个问题,公开所有场景、您拥有的内容、您获得的内容和您期望的内容。 最佳