Оказывается, стиль dataTipRenderer
из класса ChartBase
по умолчанию равен DataTip
.
DataTip
является IDataRenderer
и поэтому может выступать в качестве средства визуализации.
Однако метод DataTip.updateDisplayList(w,h)
не рисует окружность в точке данных. Он рисует прямоугольник с HTML-текстом внутри.
Так что же тогда привлекает неуловимые глаза быков?
Теперь я немного покопался, покопался очень глубоко, и нашел ответы. Я документирую их здесь для других.
Моя версия SDK 4.1.0 .
Код, который отображает точку данных окружности при наведении курсора, которая является значением по умолчанию, является не средством визуализации, как мы думали, а фактически функцией в классе mx.charts.chartClasses.ChartBase
, строка 3873:
/**
* Defines the locations of DataTip objects on the chart.
* This method ensures that DataTip objects do not overlap each other
* (if multiple DataTip objects are visible) or overlap their target data items.
*
* @langversion 3.0
* @playerversion Flash 9
* @playerversion AIR 1.1
* @productversion Flex 3
*/
protected function positionDataTips():void
В том же классе есть похожая функция positionAllDataTips()
.
Для ChartBase
, showDataTipTargets
существует простой логический стиль, который при значении false отключает рисование круга на линии при наведении.
Цели подсказок данных отображаются в функции positionDataTips()
ChartBase
(начиная со строки 4204).
Как только я выяснил, что showDataTipTargets
связано с этим, я смог ответить на другой вопрос . Там вы можете найти подробное объяснение того, как настроить DataTipTarget
Логическое свойство ChartBase
, showDataTips
, включает отображение только BOXES подсказок данных. Они отображаются в стиле dataTipRenderer
, а текст поля подсказки данных создается с использованием свойства dataTipFunction
.
Подводя итог, можно сказать, что подсказки данных на диаграммах можно понимать следующим образом:
ChartBase.getStyle("showDataTipTargets"):Boolean
переключит видимость круга по умолчанию, который отображается при наведении курсора на точку.
- Чтобы действительно внести изменения в отображение целей DataTip, вы должны переопределить / изменить способ их отрисовки в
ChartBase.positionDataTips()
function
- Окна DataTip обрабатываются отдельно
ChartBase.showDataTips:Boolean
переключит видимость DataTips и DataTipTargets для всего графика
ChartBase.getStyle("dataTipRenderer"):Class
будет обрабатывать только графическую визуализацию окна DataTip.
-
dataTipRenderer
будет использовать строку, возвращаемую ChartBase.dataTipFunction:Function
, для отображения данных.
- Соглашение, которому следует следовать:
- Пользовательский
dataTipRenderer
должен обрабатывать графику / рисунок подсказки
- Пользовательский
dataTipFunction
должен обрабатывать форматирование текста данных для данной точки
- Строка выноски, которая является дополнительной линией, проведенной из поля DataTipTarget в поле DataTip, может быть включена и настроена путем установки
ChartBase.getStyle(“dataTipCalloutStroke”):IStroke
.