[
https://issues.apache.org/jira/browse/FLEX-33052?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13747471#comment-13747471
]
Vitali Kabak commented on FLEX-33052:
-------------------------------------
I used a workaround like:
if (styleManager.parent)
{
const requiredClasses: Array = [
"mx.charts.chartClasses.ChartBase",
"mx.charts.chartClasses.CartesianChart",
"mx.charts.chartClasses.PolarChart",
"mx.charts.AreaChart",
"mx.charts.series.AreaSeries",
"mx.charts.series.BarSeries",
"mx.charts.BarChart",
"mx.charts.series.ColumnSeries",
"mx.charts.ColumnChart",
"mx.charts.series.LineSeries",
"mx.charts.LineChart",
"mx.charts.series.PieSeries",
"mx.charts.PieChart",
"mx.charts.AxisRenderer",
".blockCategoryAxis",
".blockNumericAxis",
".linedNumericAxis",
".dashedNumericAxis",
".dashedCategoryAxis",
".hangingCategoryAxis",
".horizontalGridLines"
];
for (var i: int = 0; i <
requiredClasses.length; i++)
{
if
(styleManager.getStyleDeclaration(requiredClasses[i]) == null)
{
var parentStyle:
CSSStyleDeclaration =
styleManager.parent.getStyleDeclaration(requiredClasses[i]);
if (parentStyle)
{
var style:
CSSStyleDeclaration = new CSSStyleDeclaration(new
CSSSelector(requiredClasses[i]), styleManager, true);
style.defaultFactory = parentStyle.defaultFactory;
}
}
}
}
Sometimes when I run our app, it throws the same error, since
styleManager.parent is null in the child app (so I don't have a source from
where to copy style declarations into child app).
Our app is big and complicated, so I can't attach an example (also the issue in
this case is not 100% reproducible).
In order to fix this problem all chart classes, that use
styleManager.getStyleDeclaration (all Charts, Series, AxisRenderer and
GridLines) should have a fix in initStyles() method.
Method getMergedStyleDeclaration should be used instead of getStyleDeclaration
and all operations with style declaration should be inside "if" block.
Something like:
private function initStyles():Boolean
{
HaloDefaults.init(styleManager);
var chartBaseStyle:CSSStyleDeclaration =
styleManager.getMergedStyleDeclaration("mx.charts.chartClasses.ChartBase");
if (chartBaseStyle)
{
chartBaseStyle.setStyle("chartSeriesStyles",
HaloDefaults.chartBaseChartSeriesStyles);
chartBaseStyle.setStyle("fill", new SolidColor(0xFFFFFF, 0));
chartBaseStyle.setStyle("calloutStroke", new
SolidColorStroke(0x888888,2));
}
return true;
}
> Runtime error when using a chart in a module in an app that is also using
> charts
> --------------------------------------------------------------------------------
>
> Key: FLEX-33052
> URL: https://issues.apache.org/jira/browse/FLEX-33052
> Project: Apache Flex
> Issue Type: Bug
> Components: Charts
> Affects Versions: Adobe Flex SDK Previous
> Environment: Affected OS(s): All OS Platforms
> Language Found: English
> Reporter: Adobe JIRA
>
> This is a regression in 4.6. It doesn't matter if the modules are Spark or
> not. Works fine in 4.5.1 and below.
> See attached FB project.
> Steps to reproduce:
> 1. Create an app that uses a chart and create a module that also uses a chart.
>
> Actual Results:
>
> TypeError: Error #1009: Cannot access a property or method of a null object
> reference.
> at
> mx.charts.chartClasses::ChartBase/initStyles()[E:\dev\4.y\frameworks\projects\charts\src\mx\charts\chartClasses\ChartBase.as:1862]
>
> Expected Results:
>
> No error and chart loads fine.
>
> Workaround (if any):
>
> Copy chart styles from module's parent styleManager into the module's own
> styleManager.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira