2012-08-14 81 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。