1
我想要加載屏幕在Flash中工作。這是我的項目是如何設置:Flash ActionScript 3.0加載屏幕
所有的遊戲中出現「圖層1」,它被設置成許多不同的場景:「0級」,「1級」等。其代碼運行在「.as」文件中
我試圖在一個新圖層「Preloader」中實現一個簡單的加載屏幕(帶有進度條)。其代碼運行在圖層的「操作」中。
我意識到,把預加載的代碼在其「操作」是不是最好的辦法,因爲我有1層的「至於」文件加載0級在第一。所以「預加載器」和「第1層」層試圖同時運行。這造成了問題。
現在我已經嘗試將Preloader放入它自己的場景中。這不起作用。
下面是我試過的代碼使用預加載器 - 「場景」版本:
// 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);
}
}
誰能幫助我?
感謝, 基督教
謝謝!但是,我嘗試了另一種方法。正如我在之前的文章中提到的,我的遊戲中的每個關卡都是不同的場景。所以每個級別都使用其各自場景的第一幀。我曾嘗試將Preloader放入它自己的場景中。遊戲開始時,Preloader場景應該加載。然後在遊戲加載之後,等級1應該開始。這沒有用。我應該將所有不同的級別放入框架而不是場景中嗎?或者有沒有一種方法來實現帶場景的Preloader? – 2012-03-10 09:32:18
此外,您可能想要通過第2幀上的getDefinitionByName實例化主文檔類,因爲在第2幀上拖動實際實例將導致在主時間軸上創建類型爲「YourDocumentClass」的變量,這似乎強制它成爲在第1幀中導出。 – Triynko 2012-11-15 23:27:37