我意识到这已被多次询问和回答,但即使经过一些阅读,我也无法解决问题。 是)我有的: 预加载器 应该在预加载器之后发生的游戏 真正发生的事情: 所有组件都在预加载器之前加载,这使得预加载器无用哈哈。我已经将“第1帧中的导出类”更改为“第2帧”,但无济于事。 我不想使用外部预加载器。
这是我的代码:
stop();
this.addEventListener(Event.ENTER_FRAME, loading);
function loading(e:Event):void{
var total:Number = this.stage.loaderInfo.bytesTotal;
var loaded:Number = this.stage.loaderInfo.bytesLoaded;
preloader.scaleX = loaded/total;
if (total == loaded){
nextFrame();
this.removeEventListener(Event.ENTER_FRAME, loading);
}
}
这就是:
https://pp.vk.me/c630919/v630919494/37371/sgdJTWian6Q.jpg
我做错了什么?
答案 0 :(得分:0)
你应该尝试使用this.root.loaderInfo添加监听器(这种方式更好,虽然你的方式适用于这种情况,所以没关系)。
import flash.events.ProgressEvent;
this.root.loaderInfo.addEventListener(ProgressEvent.PROGRESS,loaderProgressHandler);
function loaderProgressHandler(evt:ProgressEvent):void
{
preloader.scaleX = evt.bytesLoaded /evt.bytesTotal;
}
stop();
答案 1 :(得分:0)
为了避免搞乱类导出框架,我通常使用第二个SWF进行预加载。它完美地运作。加载大型SWF后,您只需确保清除加载器影片中的所有内存。 通过这种方式,您可以保持超级简化的预加载器。在一些项目中,我只是在游戏服务器连接等待时间使用相同的预加载器。它功能多样,不会影响您的主要应用逻辑。