0
나는 다음과 같은 순서로, 사용자 정의하고 열 차트가 : 열 값이 음수하나 또는 다른 있지만 둘
- 경우, 열 색상은 빨간색입니다. 그렇지 않으면 모든 데이터가
내가 완벽하게 개별적으로 표시 # 1 & # 2를 얻을 수 있지만, 때를 양성하기 위해 모든 음의 값을 변경하여 x 축 위에 나타나도록 내가 다음을 변경
다음은 저의 액션 스크립트 코드입니다 :
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);
}
}
}