Вы можете расширить AdvancedDataGrid, как в примере ниже: </p>
<pre><code>import flash.display.GradientType;
import flash.display.Graphics;
import flash.display.Sprite;
import flash.geom.Matrix;
import mx.controls.AdvancedDataGrid;
import mx.controls.listClasses.IListItemRenderer;
import mx.core.mx_internal;
use namespace mx_internal;
public class CustomAdvancedDataGrid extends AdvancedDataGrid
{
public var secondaryColor : uint = 0xFFFFFF;
protected override function drawSelectionIndicator(
indicator:Sprite, x:Number, y:Number,
width:Number, height:Number, color:uint,
itemRenderer:IListItemRenderer) : void
{
if (isRowSelectionMode())
width = unscaledWidth - viewMetrics.left - viewMetrics.right;
var mat : Matrix = new Matrix();
mat.createGradientBox(width,height,-90*Math.PI/180);
var g:Graphics = Sprite(indicator).graphics;
g.clear();
g.beginGradientFill(GradientType.LINEAR, [color, secondaryColor], [1, 1], [0, 255], mat);
g.drawRect(0, 0, width, height);
g.endFill();
indicator.x = x;
indicator.y = y;
}
}
Другие функции, которые вы можете рассмотреть переопределением: drawHighlightIndicator и drawCaretIndicator (которые имеют одинаковую структуру).Что касается вторичного цвета, вы можете оставить его жестко запрограммированным или определить стиль для него.