Вы должны расширить класс GridLines, такой как AxisRendererGridLines, и переопределить метод updateDisplayList.Найдите код ниже и удалите / прокомментируйте его
if (horizontalShowOrigin && cache[0].y > 0 && cache[0].y < unscaledHeight)
{ originStroke=getStyle("horizontalOriginStroke");
originStroke.apply(g, null, null);
g.moveTo(0, cache[0].y - sWidth / 2);
g.lineTo($width, cache[0].y - sWidth / 2);
}
и добавьте код, подобный приведенному ниже
var _verticalAxisRenderer:IAxisRenderer;
if (!(CartesianChart(chart).verticalAxisRenderers) || CartesianChart(chart).verticalAxisRenderers.length == 0)
{
_verticalAxisRenderer=CartesianChart(chart).getLeftMostRenderer();
if (!_verticalAxisRenderer)
_verticalAxisRenderer=CartesianChart(chart).getRightMostRenderer();
}
else
verticalAxisRenderer=CartesianChart(chart).verticalAxisRenderers[0];
var _axisHeight:Number=unscaledHeight;
var _minor_ticks:Array=(verticalAxisRenderer as AxisRenderer).minorTicks;
var _max:Number=((verticalAxisRenderer as AxisRenderer).axis as LinearAxis).maximum;
var _min:Number=((verticalAxisRenderer as AxisRenderer).axis as LinearAxis).minimum;
var _zero_radio:Number=_max / (_max - _min);
var _index_mt:int;
for (var k:int=0; k < _minor_ticks.length - 1; k++)
{
if (_zero_radio >= _minor_ticks[k] && _zero_radio <= _minor_ticks[k + 1])
{
if ((_zero_radio - _minor_ticks[k]) <= (_minor_ticks[k + 1] - _zero_radio))
{
_index_mt=k;
}
else
{
_index_mt=k + 1;
}
break;
}
}
originStroke=getStyle("horizontalOriginStroke");
originStroke.apply(g, null, null);
g.moveTo(0, _minor_ticks[_index_mt] * _axisHeight);
g.lineTo($width, _minor_ticks[_index_mt] * _axisHeight);
Я попробовал это и хорошо работал.