Apache flex 模块包含图表时的Flex样式继承问题
我在将flex 3.5的应用程序迁移到flex 4.5时遇到了一个问题。在应用程序中设置样式时,无法正确应用字符样式,它仍然使用columnChart默认样式。但是,当我将fx:Style声明移动到ColumnchChartModule时,char样式就起作用了。有人能帮我解释一下为什么风格继承被打破了吗 顺便说一句:当我在应用程序中定义按钮样式时,按钮样式似乎很有效 下面是我的测试代码: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
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;
}