2011-06-13 67 views
2

我創建了一個非常大規模的Flash遊戲,並且顯然有一個大規模的疏忽 - 希望託管我的遊戲的閃存門戶網站需要它在一個獨立的.swf文件中。但是,問題是我在外部加載所有東西都是。我從.plist文件,.png中的圖像和.wav中的聲音中加載級別數據,這些數據都位於.swf目錄中的文件夾中。它們通過Loader和URLRequest加載。AS3將外部文件打包成一個獨立文件.swf

有什麼辦法可以嵌入這些,所以它會作爲一個獨立運行?最好比單獨編寫嵌入行更簡單,因爲有1000個文件。

非常感謝!

回答

2

簡短的回答:第

龍答:因爲您使用裝載機和URLRequests,所有資產都需要成爲外部請求進行訪問。您需要一種簡單的方法讓他們指向SWF內部的資產,這是不可能的。但是,如果稍微改變工作流程,則可能會發現一種代碼更改方式,可以長期受益。

如果您使用Flash Builder,FDT,FlashDevelop或IntelliJ等編輯器,您應該探索SWC文件的許多用途。您可以在Flash IDE的發佈設置中點擊'導出爲SWC'複選標記,每次測試(Cmd + Enter)fla文件時都會創建一個SWC。您可以在選擇的編輯器中導入該SWC文件,並將原始fla文件的任何符號引用爲AS3類。在編譯時,Flash編譯器會將您的原始資源嵌入到生成的SWF中,然後分發到您喜歡的任何門戶網站。 PNG和WAV是最簡單的,對於.plist,您必須使用[Embed(...)]元標記。擁有一個SWF的好處還在於,您無需預先加載每個單獨的資產,並且所有資產創建都在一個線程中完成。沒有更多的事件監聽器意大利麪加載資產!

確保您使用SWC適當地命名符號和鏈接屬性。您可以使用標準軟件包格式輕鬆找到您的資產,例如命名符號fla.icons.GreyLogofla.homepage.BackgroundGraphic。如果再有正確地定義import fla.icons.GreyLogo方向,你可以通過調用

var logo:GreyLogo = new GreyLogo(); 

Here is an article that goes into this a little more thorougly.這將是大量的工作,如果我正確地理解您的設置在標誌得到,但它可能會變成是在有利未來的項目。

乾杯,
EP。