Flex4分模块下样式动态加载步骤及相关问题的解决
1. 给应用程序编写CSS文件
(1)在项目下创建CSS文件(任意路径,可以多个)。本例在src下创建了5个样式文件
(2)Flex支持的CSS文件定义如下:
a) type selector(类选择器)构造如下
mx|TabNavigator {
backgroundColor: #E9F2F4;
paddingTop:10;
}
b) style name selector(样式名选择器)构造如下
.buttomStyle{
borderWeight:1;
cornerRadius:3;
dropShadowVisible:true;
backgroundColor:#E9F2F4;
}
2. 把CSS文件编译成SWF格式文件
右键CSS文件,将之编译成SWF格式文件。此时在webroot下就可以看到已经编译成相关的SWF文件
3. 调用styleManager.loadStyleDeclarations()方法讲CSS的SWF文件加载进应用程序
如:StyleManager.loadStyleDeclarations('assets/css/mycss1.swf',true,false, ApplicationDomain.currentDomain)
第二个参数设置是是否立即更新样式,第四个参数是访问域的设置使已编译的应用程序或模块可以设置仅影响其自身和其子代的样式
ApplicationDomain.currentDomain为当前应用程序下都可以访问
4. 分模块下样式丢失的问题
(1)可以在每次加载模块前设置该模块应用父模块相同的moduleFactor
this.moduleFactory=FlexGlobals.topLevelApplication.moduleFactory ;
(2)可以在配置文件actionScriptProperties里面添加(Flex Compiler参数)
-isolate-styles="false"