dav*_*avr 14 css apache-flex warnings flex4 flex-spark
我正在构建一个包含多个模块的大型Flex项目(一个生成多个SWF的Flex项目)
现在,我有一个css文件,被加载到主SWF标签中:
<s:Application ... >
<fx:Style source="css/main.css" />
...
</s:Application>
Run Code Online (Sandbox Code Playgroud)
在CSS文件中:
/* CSS file */
@namespace s "library://ns.adobe.com/flex/spark";
s|Panel {
skinClass: ClassReference("com.skins.DefaultPanelSkin");
}
s|Button {
skinClass: ClassReference("com.skins.DefaultButtonSkin");
}
Run Code Online (Sandbox Code Playgroud)
CSS文件不会在其他任何地方引用.
我目前有6个模块(加上主SWF,总共7个SWF).我注意到警告的数量与模块的数量有关......每次添加模块时,我都会收到更多警告.现在,我对CSS文件中的每个条目都收到6个警告,所以:
CSS type selectors are not supported in components: 'Panel'
CSS type selectors are not supported in components: 'Panel'
CSS type selectors are not supported in components: 'Panel'
CSS type selectors are not supported in components: 'Panel'
CSS type selectors are not supported in components: 'Panel'
CSS type selectors are not supported in components: 'Panel'
Run Code Online (Sandbox Code Playgroud)
并重复按钮,TextArea等等.我有很多无用的警告,不可能看到是否有任何有效的警告.
这个警告是由我做错了吗?这些样式都正确应用,并且似乎在运行时以我想要的方式工作.如果我没有做错什么,我可以告诉编译器忽略这个警告吗?
注意:我已经尝试了-show-unused-type-selector-warnings=false编译器标志,它不起作用......这是一个类似但不同的警告.
如果您正在查看FlexBuilder中的警告,您应该能够使用Eclipse的问题过滤GUI.假设Flex 4在这方面与Flex 3非常相似,在右上方的问题标签上,有一个按钮,其工具提示"配置要应用于此视图的过滤器".这是带箭头的那个.
在过滤器对话框中,在默认过滤器上,将描述设置为"不包含",将其下面的文本设置为"组件中不支持CSS类型选择器".
问题是您无法在加载的模块中定义全局样式。您可以为 Module 标记使用特定的样式名称,并在 css 中使用后代将样式应用到子组件:
<mx:Module styleName='mySubStyle' .../>
Run Code Online (Sandbox Code Playgroud)
并在CSS中使用:
.mySubStyle s|Panel { color: #FF0000; }
Run Code Online (Sandbox Code Playgroud)