使用每个项目填充Flex / Actionscript

时间:2009-11-03 02:27:33

标签: flex actionscript charts

我正在使用mxml创建一个图表。 mxml标签仅创建具有水平轴和垂直轴的图表。

我的结果事件处理程序具有遍历xml结果集的actionscript代码,并创建所有系列(行系列和堆积条)。这部分代码工作正常。

现在我需要使用functionfill函数为每个系列设置单独的颜色。我发现的所有示例都在MXML标记中调用functionfill,如下所示:

       <mx:ColumnSeries id="salesGoalSeries" 
            xField="Name" 
            yField="SalesGoal" 
            fillFunction="myFillFunction" 
            displayName="Sales Goal">

我无法从actionscript调用functionfill。

构建数据系列的部分代码如下:

if (node.attribute("ConfidenceStatus")=="Backlog" 
|| node.attribute("ConfidenceStatus")=="Billings") {
// Create the new column series and set its properties.
var localSeries:ColumnSeries = new ColumnSeries();
localSeries.dataProvider = dataArray;
localSeries.yField = node.attribute("ConfidenceStatus");
localSeries.xField = "TimebyDay";
localSeries.displayName = node.attribute("ConfidenceStatus");
localSeries.setStyle("showDataEffect", ChangeEffect);
localSeries.fillFunction(setSeriesColor(xxx));

// Back up the current series on the chart.
var currentSeries:Array = chart.series;

// Add the new series to the current Array of series.
currentSeries.push(localSeries);

//Add Array of series to columnset
colSet.series.push(localSeries);  

//assign columnset to chart
chart.series = [colSet];

我的setSeriesColor函数是:

private function setSeriesColor(element:ChartItem, index:Number):IFill {
var c:SolidColor = new SolidColor(0x00CC00);
var item:ColumnSeriesItem = ColumnSeriesItem(element);

//will put in logic here
return c;

}

我在行localSeries.fillFunction(setSeriesColor(xxx))中放入了哪些参数?

我尝试将localSeries作为第一个参数,但是我收到一个隐含的强制错误,告诉我localSeries不能被转换为ChartItem。

如何正确调用此功能?

1 个答案:

答案 0 :(得分:1)

localSeries.fillFunction = setSeriesColor;

您现在拥有的代码实际上是按照设置的方式调用setSeriesColor。你只希望它引用函数的引用,而不是调用它,所以只需将它作为变量发送“setSeriesColor”。