LineSeries и другие серии имеют стили 'radius'
Указывает радиус в пикселях элемента диаграммы в каждой точке данных.По умолчанию элемент управления PlotChart рисует круг в каждой точке данных.Вы можете установить это свойство в MXML или используя стили.Значение по умолчанию - 5 пикселей.
и 'AdjustRadius':
Указывает количество пикселей, на которое увеличивается радиус элемента диаграммы при выделении или выборе.,Значением по умолчанию является 2.
Радиус определяет базовую ширину и высоту каждого средства визуализации элементов, аорректируемый радиус изменяет его в зависимости от взаимодействия с пользователем.Код для этого виден в элементах рендеринга.Вот немного из скина CircleItemRenderer:.
switch (state)
{
case ChartItem.FOCUSED:
case ChartItem.ROLLOVER:
if (styleManager.isValidStyleValue(getStyle('itemRollOverColor')))
color = getStyle('itemRollOverColor');
else
color = ColorUtil.adjustBrightness2(GraphicsUtilities.colorFromFill(fill),-20);
fill = new SolidColor(color);
adjustedRadius = getStyle('adjustedRadius');
if (!adjustedRadius)
adjustedRadius = 0;
break;
case ChartItem.DISABLED:
if (styleManager.isValidStyleValue(getStyle('itemDisabledColor')))
color = getStyle('itemDisabledColor');
else
color = ColorUtil.adjustBrightness2(GraphicsUtilities.colorFromFill(fill),20);
fill = new SolidColor(GraphicsUtilities.colorFromFill(color));
break;
case ChartItem.FOCUSEDSELECTED:
case ChartItem.SELECTED:
if (styleManager.isValidStyleValue(getStyle('itemSelectionColor')))
color = getStyle('itemSelectionColor');
else
color = ColorUtil.adjustBrightness2(GraphicsUtilities.colorFromFill(fill),-30);
fill = new SolidColor(color);
adjustedRadius = getStyle('adjustedRadius');
if (!adjustedRadius)
adjustedRadius = 0;
break;
}
var stroke:IStroke = getStyle("stroke");
var w:Number = stroke ? stroke.weight / 2 : 0;
rcFill.right = unscaledWidth;
rcFill.bottom = unscaledHeight;
var g:Graphics = graphics;
g.clear();
if (stroke)
stroke.apply(g,null,null);
if (fill)
fill.begin(g, rcFill, null);
g.drawEllipse(w - adjustedRadius,w - adjustedRadius,unscaledWidth - 2 * w + adjustedRadius * 2, unscaledHeight - 2 * w + adjustedRadius * 2);
if (fill)
fill.end(g);
Скин CircleItemRenderer состоит всего из 200 строк, и большая часть кода находится в методе updateDisplayList.Вы можете легко создать новый скин или просто переопределить метод updateDisplayList, чтобы установить радиус на основе данных, которые представляет средство визуализации (используя что-то вроде 'newRadius = data.someValue' в методе updateDisplayList).