CSS and Runtime Modules
Another strange problem has popped up with the use of runtime modules. CSS type selectors don't work correctly. The compiler optimizes the CSS such that it only includes information for types that are actually used, based on the class dependency hierarchy. Since with a runtime module you are indirectly using classes, the dependency isn't found and the CSS information is excluded. Consider the following type selector:
SampleClass { backgroundColor: #FFFFFF; backgroundAlpha: .5; borderColor: #000000; borderThickness: 2; borderStyle: solid; paddingTop: 4; paddingBottom: 4; paddingLeft: 4; paddingRight: 4; }
If you don't have a dependency on SampleClass in the main application you will end up with the following compiler warning:
"The type selector 'SampleClass' was not processed, because the type was not used in the application."
Right now I don't have a good solution for this. The simple work around is to not use a type selector but instead just make it a style selector (i.e. .sampleClass instead of SampleClass), but that requires you to set the styleName attribute on every instance you create. I'm open to other ideas.
Update
There are a couple of compiler options that help with this issue. If you are getting the warnings and don't care about them you can turn them off like this:
-show-unused-type-selector-warnings=false
This can be either a command line parameter, stuffed into a flex-config.xml file, or setup as an additional compiler argument in Flex Builder. If instead you want to include every CSS type selector, without having to do the static reference nonsense, you can do this:
-keep-all-type-selectors=true
Again that can be setup as either a command line parameter, part of a config, or enabled in Flex Builder. For additional information on the two options see LiveDocs.
Comments
Posted by: Ogla Sungutay | April 21, 2007 12:10 PM
Posted by: Ogla Sungutay | April 21, 2007 12:16 PM