2012-07-12 92 views
0

我正在處理的應用程序在一個點上顯示四個隨機圖像。這四幅圖像來自一組50幅圖像。如果這是一個標準的Flex項目,我只想設置img.source屬性:如何將動態圖像資產加載到Adobe AIR

this.img1.source ="../assets/img/"+randomname+".png";` 

這不,雖然工作,我得到一個破碎的形象。另一種方式去了解它是加載對於URLLoader,這也是不加載圖像的圖像(勿庸置疑的,因爲它是一個本地資產)

loader = new Loader(); 
var urlReq:URLRequest = new URLRequest("../assets/img/"+randomname+".png"); 
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loaded); 
loader.load(urlReq) 

所以這是不工作要麼,我我想把所有的圖像加載到一個swc中,然後將swc鏈接到項目中。這顯然不是很好,因爲所有資產都在運行時加載到內存中。有沒有另外一種方法呢?

我希望我失去了一些非常簡單的東西。

如果.swc解決方案是最好的解決方案,有人能指出我正確的方向嗎?我忘了整個業務是如何運作的,因爲我已經使用Flex/Flash已經有幾年了。

在此先感謝

+0

'URLLoader'會從文件系統中加載一個文件。您的圖片可能有不正確的網址。項目的「src」文件夾中的「assets」文件夾在哪裏? – NoobsArePeople2 2012-07-12 03:54:24

+0

「資產」文件夾與「src」文件夾處於同一級別。我已經使用「../assets/img」和「assets/img」作爲文件路徑開頭的URLLoader。我得到一個錯誤#2044:未處理的IOErrorEvent :. text =錯誤#2035:找不到網址.'錯誤 – cside23 2012-07-12 23:41:33

+0

您是否正在使用Flash Builder執行此操作?資產文件夾是否被複制到bin-debug文件夾中? – NoobsArePeople2 2012-07-13 00:41:59

回答

0

你可以試試:

var urlReq:URLRequest = new URLRequest("assets/img/"+randomname+".png"); 
+0

感謝您的回覆邁克爾。不幸的是,這似乎並不奏效。 'assets'和'src'文件夾位於同一級別,並且作爲'URLRequest'參數的「assets/img」和「../assets/img」都會給出錯誤#2044:未處理的IOErrorEvent :. text =錯誤#2035:URL Not Found.'錯誤,這就是爲什麼我認爲Air可能無法加載本地文件(至少簡單地說)。有任何想法嗎? – cside23 2012-07-12 23:44:00

+0

我可以獲取該文件,但我的資產文件夾位於src文件夾下。或者你可以嘗試輸入完整的路徑,例如。 「c:/」+你的項目的路徑+「/ assets/img /」+ randomname +「。png」。 「項目路徑」與窗口環境中的「用戶/用戶名/ Adob​​e Flash Builder 4.6 /您的項目名稱」類似。 – michael 2012-07-13 00:07:37

1

您應該添加您的資產目錄是 「源」 目錄。

然後,您應該知道資產目錄的內容將被複制到您的應用程序的根目錄。所以當你有圖像「assets/interface/bg.png」時,你應該使用新的URLRequest(「interface/bg.png」)加載它。