我正在创建一个互动游戏。现在,我需要加载6个swf文件,并且需要按顺序播放它们。
我对此主题有很多疑问,这里是他们:)
第一个问题:电影场景结束后,如何加载外部SWF文件?
在我的第三个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)您可以串联许多swf文件,这些文件是通过框架动作而不是AS3加载的。这样,您可以确保仅在上一部电影结束时才加载下一部电影。或者,按照您的说法,只有在第一个“电影”场景结束后才加载下一部电影。因此,请勿使用“延迟”,因为这会根据用户配置在机器和带宽方面产生很大不同的结果。
(2)您可以像预加载单个电影一样以一次预加载所有电影的方式,只是编写正确的代码,先检查是否先加载了movie1,然后是movie2,等等。
(3)测试您自己的代码,并验证其是否有效。如果没有,请充分利用有关错误消息和条件的信息,并在StackOverflow上打开另一个问题,以揭示所有情况,所拥有的内容,所得到的内容和期望的内容。最好
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句