2013-06-26 30 views
1

我剛剛開始進入Flash遊戲編程。我知道足夠做一個正常工作的項目,但不知道如何提高效率或做特定任務,在這種情況下如何添加預加載器。我在網上發現了幾個教程,但沒有一個與我所見過的一起是最好的編程方法。從我所看到的,最好將我的所有代碼編入一個.as文件並將此文件鏈接到主文檔。這使我可以輕鬆地將所有變量放在全局範圍內,這使我可以在各種不同的函數中添加Child/ removeChild。唯一的問題是,我無法找到關於使用這種方法創建預加載器的教程。我發現的所有教程通常在時間軸中有兩個框架,一個用於預加載器,另一個用於內容,但我被告知這不是編程的好方法。如果有人能幫助我會很感激。我可以粘貼我的一個學習項目的源代碼,如果它有助於提供我的問題的答案。如何創建預加載器到Flash遊戲

+1

如果您想要做一個預加載器,你要麼*要*做2幀,並在第2幀(文件設置中的一個選項)上導出所有的資源,或者將你的資源放在外部文件中並加載。 – Marty

+1

如果您在我爲AS3遊戲製作的引擎中查看[此課程](https://github.com/MartyWallace/Lotus/blob/master/Lotus/lotus/base/Game.as),您會發現我甚至強制在MainTimeline上要求2幀。 – Marty

+0

嗨,所以例如我有我的所有代碼和我在.as文件中使用的所有東西。我會保持一切嗎,只需添加預加載器的代碼並將設置更改爲在第2幀上導出資源?如果是這樣,你能提出一個關於如何用這種方法實現預加載器的好教程嗎? –

回答

0

我不會去2幀的方法。相反,只需用你的文檔類製作你的遊戲,就像你說的那樣。
然後,當你完成,加載你的編譯遊戲瑞士法郎加載到瑞士法郎。

這裏是你的loaderSwf應該怎麼看起來像一個簡單的例子:

import flash.net.URLRequest; 
import flash.display.Loader; 
import flash.events.Event; 
import flash.events.ProgressEvent; 

function startLoad() 
{ 
    var mLoader:Loader = new Loader();//Or use ProLoader 
    var mRequest:URLRequest = new URLRequest(「Game.swf」); 
    mLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onCompleteHandler); 
    mLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, onProgressHandler); 
    mLoader.load(mRequest); 
} 

function onCompleteHandler(loadEvent:Event) 
{ 
    addChild(loadEvent.currentTarget.content); 
} 
function onProgressHandler(mProgress:ProgressEvent) 
{ 
    var percent:Number = mProgress.bytesLoaded/mProgress.bytesTotal; 
    trace(percent); 
} 
startLoad(); 

(需要如果你使用它作爲文檔類的包和類被包梁)

+0

如果我不需要爲了閃存門戶目的而將所有內容保存在單個文件中,則可以使用此解決方案。如果您關心的是我在關於主要問題的評論中發佈的網站,它會使用多個框架,但它只是一個解決方案,大部分代碼仍然位於.as文件中。當我有空時,我會檢查它是否有效。 –