Ich habe den folgenden als "preloader.swf" gespeicherten Preloader erstellt, der eine externe SWF-Datei wie folgt lädt:
var req:URLRequest = new URLRequest("main.swf");
var loader:Loader = new Loader();
loader.load(req);
loader.contentLoaderInfo.addEventListener(Event.OPEN, showPreloader);
loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, showProgress);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, showContent);
var preloader:Preloader = new Preloader();
function showPreloader(event:Event):void
{
addChild(preloader);
preloader.x = (stage.stageWidth / 2) - (preloader.width / 2);
preloader.y = (stage.stageHeight / 2) - (preloader.height / 2);
}
function showProgress(event:ProgressEvent):void
{
var percent:Number = event.bytesLoaded / event.bytesTotal;
preloader.percentage.text = Math.round(percent * 100) + "%";
preloader.bar.width = 300 * percent;
}
function showContent(event:Event):void
{
removeChild(preloader);
addChild(loader);
}
Ich habe gelesen, um die PROGRESS- und COMPLETE-Events zu vermeiden, da diese Events nicht zu 100% funktionieren.
Nun ist meine Frage: Gibt es eine Möglichkeit, wie ich eine externe SWF-Datei laden kann (wie oben), aber OHNE die PROGRESS- und COMPLETE-Ereignisse verwenden möchte?
Wenn ja, kann mir jemand vorschlagen, welche Codierung hinzugefügt / geändert werden soll?
Vielen Dank.
Antworten:
0 für die Antwort № 1Hast du es mit einem Timer versucht? Sie überprüfen in jedem Intervall, ob die SWF-Datei vollständig geladen ist oder nicht.
PROGRESS- und COMPLETE-Ereignisse sollten jedoch immer funktionieren. Was funktioniert in Ihrem Projekt nicht?