我已经google了很多,除了基于时间轴的预加载器或外部预加载器(加载外部swfs)之外找不到任何东西。
我正在寻找预先加载的Document类,它甚至为第一帧导出了库符号。
请告知。
我在文档类中也有私有变量引用那些导出的剪辑。
public var menu:Menu;
public var brand:MovieClip;
public var container:MovieClip;
public var background:Background;
public var intro:Intro;
public var language:Language;
加上闪存本身在第1帧上导出的大量剪辑,例如Combobox,(截图如下)
答案 0 :(得分:2)
您只需使用root.loaderInfo
的{{1}}和bytesTotal
属性。
当它们彼此相等时,你已经加载了100%的SWF,你可以相应地管理下一步应该发生的事情。
样品:
bytesLoaded
我还必须注意,在第一帧上导出所有库符号是个坏主意 - 你需要确保它们不在第一帧上导出。
Bonus:将上面的类作为实际文档类的基类,可以实现一个非常整洁的应用程序入口点(开始编写应用程序的代码):
package
{
import flash.display.Sprite;
import flash.events.Event;
/**
* Document class.
*/
public class Document extends Sprite
{
// Constructor.
public function Document()
{
addEventListener(Event.ENTER_FRAME, _loadStatus);
}
// Manage the current status of the preloader.
private function _loadStatus(e:Event):void
{
if(loadPercent >= 1)
{
removeEventListener(Event.ENTER_FRAME, _loadStatus);
beginApplication();
}
}
// Load complete, being the application here.
protected function beginApplication():void
{
trace("Loaded.");
}
// Returns a number representing current application load percentage.
protected function get loadPercent():Number
{
return root.loaderInfo.bytesLoaded / root.loaderInfo.bytesTotal;
}
}
}