Application (1)->Loading class (2) – >Load another class (3) that implements the Flex component (4).
Load using SWFLoader. The last Flex component (4) is just a group with AdvancedDataGrid. We have no skin defined so I think it The default skin must be used.
The problem is that an error will be thrown during execution, because the default appearance of the component cannot be found in the Flex component (4). In our example, for AdvancedDataGrid:
Error #1007: Instantiation attempted on a non-constructor.
In mx.controls :: AdvancedDataGridBaseEx.
The guilty command is: getStyle(“headerSeparatorSkin”); returns null
Currently, we have found two solutions:
>The first solution is to set the attribute headerSeparatorSkin = “spark.skins.SparkSkin “Added to the AdvancedDataGrid of the Flex component (4). But this means I have to manually add each skin for each part of the component, which is a very boring solution.
>The second solution is in Create an AdvancedDataGrid in the first Application (1). I think it will add AdvancedDataGrid to the compilation and linking process. However, this solution is not good because Application (1) must know which UIComponents are used by Flex components (4) .
We tried the compiler option “keep-all-type-selectors = true” (like this) but did not change.
Then, someone has a solution to force compilation Does the device explicitly link the Flex component and its skin in the sub-application?
The correct syntax for Flex 4.5.1 is -keep-all-type-selectors
We try to develop A Flash game engine with multiple abstract layers. This flex project contains:
Apply (1)-> Load class (2)-> Load another class that implements Flex component (4) (3) ).
Load using SWFLoader. The last Flex component (4) is just a group with AdvancedDataGrid. We have no skin defined so I think it must use the default skin.
The problem is An error will be thrown during execution because the default appearance of the component cannot be found in the Flex component (4). In our example, for the AdvancedDataGrid:
Error #1007: Instantiation attempted on a non-constructor.
In mx.controls :: AdvancedDataGridBaseEx.
The guilty command is: getStyle(“headerSeparatorSkin”); returns null
Currently, we have found two solutions:
>The first solution is to add the attribute headerSeparatorSkin = “spark.skins.SparkSkin” to the AdvancedDataGrid of the Flex component (4). But this means So I have to manually add each skin for each part of the component, which is a very boring solution.
>The second solution is to create an AdvancedDataGrid in the first Application(1). I want it Add AdvancedDataGrid to the compilation and linking process. However, this solution is not good, because Application (1) must know which UIComponents the Flex component (4) uses.
We tried the compiler option” keep-all-type-selectors = true” (such as this) but no change.
So, does anyone have a solution to force the compiler to explicitly link the Flex component with its skin in the sub-application?
According to Flexmaniak.pl, it can be solved by adding -keep-all-styles-selectors to the flex compiler parameter.
The correct syntax for Flex 4.5.1 is -keep-all-type-selectors