Flex使用module加载swf,部分组件样式丢失

flex使用module加载swf,部分组件样式丢失(datefield RadioButton)

解决方法:

方案一.在Application主文件里面放入丢失样式的组件,并设置组件属性visible=false.

方案二.在flex编译属性配置文件(.actionScriptProperties)编译参数中加上-keep-all-type-selectors=true。如下配置:

<compiler additionalCompilerArguments="-services &quot;x:/workspace/xxx/WebRoot/WEB-INF/flex/services-config.xml&quot; -keep-all-type-selectors=true -allow-source-path-overlap=true -source-path=com/cist/gis/config -locale zh_CN" autoRSLOrdering="true" copyDependentFiles="true" flex3CompatMode="false" fteInMXComponents="false" generateAccessible="true" htmlExpressInstall="true" htmlGenerate="true" htmlHistoryManagement="true" htmlPlayerVersionCheck="true" includeNetmonSwc="false" outputFolderPath="WebRoot" removeUnusedRSL="true" rootURL="http://localhost:8080/xxx" sourceFolderPath="flex_src" strict="true" targetPlayerVersion="0.0.0" useApolloConfig="false" useDebugRSLSwfs="true" verifyDigests="true" warn="true">

 

4. 分模块下样式丢失的问题

(1)          可以在每次加载模块前设置该模块应用父模块相同的moduleFactor

this.moduleFactory=FlexGlobals.topLevelApplication.moduleFactory ;

(2)          可以在配置文件 actionScriptProperties里面添加

isolate-styles="false"

 

 

Turned out to be a simple solution. All styles except fonts were inherited to the modules.

mx|Module{ font-family : "Myriad Web"; }

Needs to be added when built using ant. Flash builder generated swf's were working fine with out this additional style definition. I had provided only

s|Application { font-family: "Myriad Web"; font-size: 12; font-anti-alias-type:advanced; }

in the main style sheet.

你可能感兴趣的:(Module)