Я пытаюсь заставить загрузочный экран работать во Flash. Вот как настроен мой проект:
Вся игра происходит в «Уровне 1», который настроен на множество различных сцен: «Уровень 0», «Уровень 1» и т. Д. Его код запускается в файле «.as»
Я попытался реализовать простой экран загрузки (с индикатором выполнения) в новом слое «Preloader». Его код запускается в слое «Actions».
Я понимаю, что помещать код Preloader в его "Actions" было не самой лучшей идеей, потому что у меня сначала был 0-й уровень загрузки файла ".as" уровня 1. Таким образом, слои «Preloader» и «Layer 1» пытались запускаться одновременно. Это вызвало проблемы.
Теперь я попытался поместить Preloader в собственную сцену. Это не работает.
Вот код, который я пытался использовать для Preloader - версия "scene":
// This function loads the Preloader
public function loadPL(event:Event) {
// Load the Scene associated with the Preloader
this.gotoAndStop(1, "PL");
// Prevent the MovieClip (game) from playing right away
stop();
// Add an EventListener that calls the 'loading()' function
this.addEventListener(Event.ENTER_FRAME, loadingPL);
} // End of 'loadPL()' method
// 'loading()' function
// This function calculates how much of the game has been loaded vs. how much data
// the game contains. The loading progress bar is resized accordingly.
public function loadingPL(e:Event):void{
// How much data does the game have in all?
var totalData:Number = this.stage.loaderInfo.bytesTotal;
// How much data has been loaded so far?
var loadedData:Number = this.stage.loaderInfo.bytesLoaded;
// Scale the 'plBarIns' according to the loadedData:totalData ratio
plBarIns.scaleX = loadedData/totalData;
// If the 'loadedData' == 'totalData' (all of the game's data has been loaded), allow
// the game to play
if (loadedData == totalData) {
play();
// Remove the EventListener that calls the 'loading()' function. It's not needed now
this.removeEventListener(Event.ENTER_FRAME, loadingPL);
}
}
Может ли кто-нибудь мне помочь?
Спасибо,
Christian