我試圖在空運行時運行我的Flex應用程序而不是Flash運行時。除了圖像之外,它看起來很完美。 Adobe Air運行時會嘗試加載它們。有沒有辦法改變圖片到服務器端的根地址?如果可能的話,我想使用相同的代碼,Flash運行時和AIR運行時。「單一的代碼庫;-)」Flex圖像源服務器端Flash和空氣
var icon:Image = new Image();
icon.source = "images/test.png";
問候 cyrill
我試圖在空運行時運行我的Flex應用程序而不是Flash運行時。除了圖像之外,它看起來很完美。 Adobe Air運行時會嘗試加載它們。有沒有辦法改變圖片到服務器端的根地址?如果可能的話,我想使用相同的代碼,Flash運行時和AIR運行時。「單一的代碼庫;-)」Flex圖像源服務器端Flash和空氣
var icon:Image = new Image();
icon.source = "images/test.png";
問候 cyrill
通常我會簡單地打包資產注入AIR應用程序。這樣,相關路徑將在Web應用程序和桌面應用程序中都有效。但是,既然您在評論中指出我們正在談論10000張圖片,則您必須找到其他解決方案。
您需要的是一個可配置用於每種類型項目的變量。最後的代碼來訪問圖像應該是這樣的:
var icon:Image = new Image();
icon.source = rootUrl + "/images/test.png";
這rootUrl
可能""
的Web應用程序,並"http://www.mydomain.com"
的桌面應用程序。或者它可能是兩種情況下的絕對路徑。這並不重要:我們不想將該網址硬編碼到我們的應用程序中。
創建一個屬性文件(或XML或JSON;你喜歡的任何配置文件),其中包含了rootUrl
價值和閱讀到您的應用程序模型。此配置文件可以打包到AIR應用程序中。
.properties文件看起來像這樣:
#myapp.properties
rootUrl=http://www.mydomain.com
文件進行讀取,你可以使用AIR的文件流媒體功能,但我建議你用URLLoader
加載了老式的方法:這樣它就可以在網絡和桌面應用中使用。
謝謝..只是做了一個它的工作。 :) ..我實現了一些緩存機制,所以它只加載一次。你知道這是不是一個已知的問題嗎?包含10000個圖像的空氣應用程序包裝? – 2012-07-09 09:49:25
@CyrillZadra對不起,不知道。你可以嘗試在[JIRA](https://bugs.adobe.com/flex/)中找到它。 – RIAstar 2012-07-09 11:17:28
包裝AIR應用程序時是否包含資產? – RIAstar 2012-07-09 08:30:21
不,我希望我可以使用部署在服務器端的資產。我試圖包括他們在項目中,然後它的工作..但只要我用Flashbuilder導出工具創建EXE我得到一個例外......以及一個未定義的例外。根據這個錯誤,我可以找到任何日誌文件。 – 2012-07-09 08:34:44
大約有10000個圖像 – 2012-07-09 08:40:37