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

时间:2016-07-06 23:59:23

标签: java html actionscript-3 flash jquery-animate

我正在创建一个互动游戏。我现在有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;
}

第3个问题:以上代码是否是加载多个swf文件的正确方法?

1 个答案:

答案 0 :(得分:3)

许多问题......(1)您可以通过框架操作连接许多swf文件,而不是 AS3 。这样,您可以确保只有在前一个电影结束时才会加载下一部电影。或者,按照您的意思,您只在第一个“电影”场景结束后加载下一部电影。因此,不要使用“延迟”,因为根据用户配置在机器和带宽方面会产生很多不同的结果。

(2)您可以按照预装单个电影的方式预装所有电影,只需编写正确的代码,检查movie1是否已加载,然后是movie2等等。

(3)测试你自己的代码并验证它是否有效。如果不是,请尽可能地了解错误消息和条件,并在StackOverflow上打开另一个问题,揭示所有场景,您拥有的内容,获得的内容以及您的期望。 最好