[英]How to combine external .swf preloader with actual .swf?
我有一个.swf文件,可以加载游戏中的外部.swf文件。 有没有办法将两个瑞士法郎合并为一个? 这是.swf中加载外部游戏的代码:
import flash.display.*;
import flash.net.*;
import flash.events.*;
var array:Array = new Array ("Loading Bugs..","Everyone hates loading screens..","Lovely day, isn't it?",
"Want instant updates? Follow us on Twitter!", "A game where you can kill bugs, pretty cool...huh?"); //create an array of possible strings
var randomIndex:int = Math.floor ( Math.random () * array.length ); //generate a random integer between 0 and the length of the array
loading_txt.text = array [ randomIndex ]; //put the random string in your text field
var myRequest:URLRequest = new URLRequest("insectGame.swf");
var myLoader:Loader = new Loader();
myLoader.load(myRequest);
function showProgress(evt:ProgressEvent):void
{
txtPreloader.text = Math.round((evt.bytesLoaded/evt.bytesTotal)*100) + "%";
mcPreloaderBar.width = Math.round(evt.bytesLoaded/evt.bytesTotal * 200);
}
function showLoaded(evt:Event):void
{
myLoader.contentLoaderInfo.removeEventListener(ProgressEvent.PROGRESS,showProgress);
myLoader.contentLoaderInfo.removeEventListener(ProgressEvent.PROGRESS,showLoaded);
removeChild(txtPreloader);
removeChild(mcPreloaderBar);
removeChild(mcPreloaderFrame);
removeChild(Mosquito);
removeChild(loading_txt);
mcPreloaderBar = null;
mcPreloaderFrame = null;
txtPreloader = null;
loading_txt = null;
addChild(myLoader);
}
myLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,showProgress);
myLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,showLoaded);
您可能要在主swf文件的第一帧中实现预加载器。 因此,您应该拥有实际的.swf的来源。 如果您使用的是Flash Builder,请签出mxmlc编译器的-frame参数。
此方法的核心思想是将预加载器分配为应用程序的主类,再向swf文件添加1帧,并且您不直接实例化gameClass。 当内容完全加载(framesLoaded == totalFrames)
您可以使用以下代码创建游戏类的实例:
var gameClass:Class = Class(getDefinitionByName("GameClass"));
if(gameClass)
{
var app:Object = new gameClass();
addChildAt(app as Sprite, 0);
}
这是有用的链接: http : //www.drewing.de/blog/2009/09/23/building-a-preloader-with-actionsscript-3-using-mxmlc-and-the-frame-pragma/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.