je suis tableau colonne I PERSONNALISATION, dans l'ordre suivant:un ou l'autre mais pas les deux
- Si la valeur de la colonne est négative, la couleur de la colonne est rouge. Sinon, il est noir
- je change alors en sorte que toutes les données apparaîtront au-dessus de l'axe x en changeant toutes les valeurs négatives positifs
Je peux obtenir # 1 & # 2 pour afficher parfaitement individuellement, mais quand J'essaie de mettre en œuvre les deux, je reçois seulement des colonnes noires (ie le code convertira les valeurs négatives en positifs et ALORS appliquera les couleurs, donc toutes les colonnes sont noires .... même si dans mon code j'ai la couleur appliquée AVANT le la valeur absolue partie du code.Toutes les suggestions sur la façon dont je corrige ce?
Ci-dessous mon code actioncript:
package utils
{
import mx.core.IDataRenderer;
import mx.core.UIComponent;
import flash.display.Graphics;
import flash.geom.Rectangle;
import mx.charts.ChartItem;
import mx.charts.ColumnChart;
import mx.charts.chartClasses.LegendData;
public class ColorColumnChartRenderer extends UIComponent implements IDataRenderer
{
public function ColorColumnChartRenderer():void
{
super();
}
private var _chartItem:ChartItem;
public function set data(value:Object):void
{
if (_chartItem == value)
return;
// setData also is executed if there is a Legend Data
//defined for the chart. We validate that only chartItems are
//assigned to the chartItem class.
if (value is LegendData)
return;
_chartItem = ChartItem(value);
}
public function get data():Object
{
return _chartItem;
}
override protected function
updateDisplayList(unscaledWidth:Number,unscaledHeight:Number):void
{
super.updateDisplayList(unscaledWidth, unscaledHeight);
var rc:Rectangle = new Rectangle(0, 0, width , height);
var columnColor:uint;
var g:Graphics = graphics;
g.clear();
g.moveTo(rc.left,rc.top);
// Only if the _chartItem has data
if (_chartItem == null)
return;
// Only if the _chartItem has the attributes
if(_chartItem.item.hasOwnProperty("price"))
{
if (Number(_chartItem.item.price) > 0){
// black
g.beginFill(0x000000);
}
if (Number(_chartItem.item.price) < 0){
// red
g.beginFill(0xF04448);
}
}
// Draw the column
g.lineTo(rc.right,rc.top);
g.lineTo(rc.right,rc.bottom);
g.lineTo(rc.left,rc.bottom);
g.lineTo(rc.left,rc.top);
g.endFill();
_chartItem.item.price= Math.abs(_chartItem.item.price);
}
}
}