簡體   English   中英

Flex 4中的多版本子應用程序資產路徑

[英]multiversioned sub application asset paths in flex 4

希望有人可以在這里提供幫助,或多或少地尋找a)相對路徑的解決方案,或b)了解另一種加載資產的方法。

我們有一個獨立的Web應用程序,該應用程序使用SDK 4.1,並在其相對資源文件夾中查找所有要加載的圖像和外部swf。

在服務器上,這是資產目錄的絕對路徑:

/ApplicationRoot/versionFldr/controls/assets/*

該應用程序會在加載資產的所有情況下使用相對路徑。.隨着我們推進該應用程序的版本,此路徑會不斷添加和更新。

因此,從本質上講,該應用程序正在尋找:

assets/*

現在轉到新應用程序,將其命名為“ ParentApp”,將上述應用程序命名為“ ChildApp”。

父應用與子應用位於不同的服務器目錄中

/ParentApp/version/controls/ParentApp.swf
/ChildApp/version/controls/ChildApp.swf

現在,當ChildApp加載到ParentApp時,它假定它與它一直在同一個目錄中。因此,它查找資產/ *並找不到它們,因為

/ParentApp/version/controls/assets/* != /ChildApp/version/controls/assets/*

我需要找到一種解決方案,讓ChildApp在成為ParentApp的子級時,在所有加載資產的絕對路徑中查找,並在其獨立時,在相對於其自身的路徑中查找。

我要注意的是,圖像被加載到各種控件,緩存,甚至是mx:Text字段(帶有標簽的html文本)中。 我試圖避免在應用程序中創建新資產時,不必全局替換應用程序中的所有路徑鏈接,也不必創建新的編碼過程。 ChildApp正在生產中,必須使用4.1 SDK。

ParentApp是新的,具有更大的靈活性。

我在childApp中嘗試了-source-path和-library-path編譯器選項,但這會導致編譯錯誤,因此我無法繼續。

預先感謝您的任何見解和幫助! -AJ

我將通過在子應用程序中使用“ baseURL”變量來解決此問題。 給它一個默認值,以便您可以形成所使用的通常的相對URL:`var baseURL:String =“ / assets /”;

不幸的是,您隨后必須修改子應用程序中的每個資產路徑,因此資產的路徑類似於: baseURL + assetFileName

將子應用程序加載到父應用程序后,您可以為該baseURL變量提供非相對路徑。 理想情況下,您應在子應用嘗試加載任何資產之前,在流程的早期進行此操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM