我正在创建一个互动游戏。我现在有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文件的正确方法?
答案 0 :(得分:3)
许多问题......(1)您可以通过框架操作连接许多swf文件,而不是 AS3 。这样,您可以确保只有在前一个电影结束时才会加载下一部电影。或者,按照您的意思,您只在第一个“电影”场景结束后加载下一部电影。因此,不要使用“延迟”,因为根据用户配置在机器和带宽方面会产生很多不同的结果。
(2)您可以按照预装单个电影的方式预装所有电影,只需编写正确的代码,检查movie1是否已加载,然后是movie2等等。
(3)测试你自己的代码并验证它是否有效。如果不是,请尽可能地了解错误消息和条件,并在StackOverflow上打开另一个问题,揭示所有场景,您拥有的内容,获得的内容以及您的期望。 最好