Apache flex 模块包含图表时的Flex样式继承问题

Apache flex 模块包含图表时的Flex样式继承问题,apache-flex,module,charts,styles,Apache Flex,Module,Charts,Styles,我在将flex 3.5的应用程序迁移到flex 4.5时遇到了一个问题。在应用程序中设置样式时,无法正确应用字符样式,它仍然使用columnChart默认样式。但是,当我将fx:Style声明移动到ColumnchChartModule时,char样式就起作用了。有人能帮我解释一下为什么风格继承被打破了吗 顺便说一句:当我在应用程序中定义按钮样式时,按钮样式似乎很有效 下面是我的测试代码: xmlns:s=”library://ns.adobe.com/flex/spark" xmlns:mx

我在将flex 3.5的应用程序迁移到flex 4.5时遇到了一个问题。在应用程序中设置样式时,无法正确应用字符样式,它仍然使用columnChart默认样式。但是,当我将fx:Style声明移动到ColumnchChartModule时,char样式就起作用了。有人能帮我解释一下为什么风格继承被打破了吗

顺便说一句:当我在应用程序中定义按钮样式时,按钮样式似乎很有效

下面是我的测试代码:

xmlns:s=”library://ns.adobe.com/flex/spark"
xmlns:mx=”library://ns.adobe.com/flex/mx">
@命名空间s“library://ns.adobe.com/flex/spark";
@名称空间mx“library://ns.adobe.com/flex/mx";
.c01{
填充:#0D7393;
区域填充:#0D7393;
}
.c02{
填充:#A1B26B;
区域填充:#A1B26B;
}
.c03{
填充:#C4843D;
区域填充:#C4843D;
}
.c04{
填充物:#5A4736;
区域填充:#5A4736;
}
.c05{
填充:#994C34;
区域填充:#994C34;
}
.c06{
填充:#649DA2;
区域填充:#649DA2;
}
.c07{
填充:#D66D2B;
区域填充:#D66D2B;
}
.c08{
填充:#C8E8B0;
区域填充:#C8E8B0;
}
.c09{
填充:#6BB9D3;
区域填充:#6BB9D3;
}
mx |柱形图{
图表系列样式:c01、c02、c03、c04、c05、c06、c07、c08、c09;
}
s |按钮{
颜色:红色;
}

----------------------------------------ColumnChartModule.mxml

xmlns:s=”library://ns.adobe.com/flex/spark"
xmlns:mx=”library://ns.adobe.com/flex/mx“width=“100%”height=“100%”>

在您的模块(即MyCustomModule.mxml)上输入此覆盖代码

override public function get moduleFactory():IFlexModuleFactory{
 return FlexGlobals.topLevelApplication.moduleFactory;
}
       xmlns:s="library://ns.adobe.com/flex/spark"

       xmlns:mx="library://ns.adobe.com/flex/mx" width="100%" height="100%">

    <fx:Script><![CDATA[

        import mx.collections.ArrayCollection;

        [Bindable]

        public var expenses:ArrayCollection = new ArrayCollection([

            {Month:"Jan", Revenue:1200, Expenses:500},

            {Month:"Feb", Revenue:1200, Expenses:550},

            {Month:"Mar", Revenue:1240, Expenses:475},

            {Month:"Apr", Revenue:1300, Expenses:600},

            {Month:"May", Revenue:1420, Expenses:575},

            {Month:"Jun", Revenue:1400, Expenses:600},

            {Month:"Jul", Revenue:1500, Expenses:600},

            {Month:"Aug", Revenue:1600, Expenses:750},

            {Month:"Sep", Revenue:1600, Expenses:735},

            {Month:"Oct", Revenue:1750, Expenses:750},

            {Month:"Nov", Revenue:1800, Expenses:800},

            {Month:"Dec", Revenue:2000, Expenses:850}

        ]);



        private function onClick(): void{

            var columnChart:CSSStyleDeclaration = this.styleManager.getStyleDeclaration("mx|ColumnChart");

            var columnChart1:CSSStyleDeclaration = this.styleManager.getMergedStyleDeclaration("mx|ColumnChart");

            var columnChart2:CSSStyleDeclaration = this.styleManager.getStyleDeclaration("s|Button");



            trace(columnChart);

            trace(columnChart1);

            trace(columnChart2);

        }

    ]]></fx:Script>



<s:layout>

    <s:VerticalLayout/>

</s:layout>

<s:Button label="GetChartStyle" click="onClick()" />

<s:Panel title="Floating Column Chart">

    <s:layout>

        <s:VerticalLayout/>

    </s:layout>

    <mx:ColumnChart

        dataProvider="{expenses}"

        showDataTips="true">

        <mx:horizontalAxis>

            <mx:CategoryAxis

                dataProvider="{expenses}"

                categoryField="Month"/>

        </mx:horizontalAxis>

        <mx:series>

            <mx:ColumnSeries

                yField="Revenue"

                displayName="Revenue"/>

            <mx:ColumnSeries

                yField="Expenses"

                displayName="Expenses"/>

        </mx:series>

    </mx:ColumnChart>

</s:Panel>
override public function get moduleFactory():IFlexModuleFactory{
 return FlexGlobals.topLevelApplication.moduleFactory;
}