2012-08-14 76 views
0

我有一個Flex應用程序。它加載代表已編譯的CSS做一個包含一些嵌入字體的SWF:Textlayout RSL從錯誤的URL加載

FlexGlobals.topLevelApplication.styleManager.loadStyleDeclarations("assets/css/fontCSS/Interstate.swf"); 

發生這種情況時,Flex應用程序也嘗試加載資產/ CSS/fontCSS/textLayout_2.0.0.232.swf

我知道我需要文本佈局RSL。但我想從flex應用程序的相同目錄加載它,而不是模塊的目錄。我在那個地方有幾個應用程序,我希望他們都分享相同的RSL。

關於如何強制RSL從我的應用程序URL加載的任何想法?

回答

0

事實證明,我的CSS SWF是在調試模式下編譯的,但該應用程序處於發佈模式。所以這個應用程序使用了一個緩存swz,然後模塊試圖加載swf版本的調試版。

如果編譯選項匹配,它不會嘗試雙重加載,並且都很高興。

此外,使用發行版本適用於應用程序的調試版本和發行版本,所以這就是我正在做的簡化部署。

0

首先,我們在mxmlc的任務添加一些屬性:

enter code here 
       static-rsls="false" 
       static-link-runtime-shared-libraries="false" 
       verify-digests="false" 

然後,每個庫的RSL路徑必須添加。或者,由於所有的ant文件都使用公共庫,因此我們在ant build項目中創建了一個新的xml文件(請參閱:refractor similar code snippet in ANT files

最後,RSL的swf/swz文件的版本最好在文件中初始化build.properties。