Отображение всплывающей подсказки средства визуализации элементов над точкой данных - PullRequest
0 голосов
/ 11 августа 2011

Я использую средство визуализации пользовательских элементов для AreaChart:

<mx:AreaChart id="numParticipants" left="10" right="10" top="10" 
    bottom="10" color="#8D8D8D"
dataProvider="{UsersModel.graphData.data_points.point}" dataTipMode="multiple"
dataTipRenderer="tooltip.ChartTooltip" fontSize="9" mouseSensitivity="10"
    seriesFilters="[]" showDataTips="true" >

внутри набора данных:

<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="180" height="42">

<mx:Style source="css/style.css"/>
<mx:Script>
    <![CDATA[
        import models.UsersModel;

        import mx.charts.HitData;
        import mx.formatters.DateFormatter;

        override public function set data(value:Object):void
        {

Я отображаю свой текст.

Тем не менее, я хочу, чтобы воздушный шар находился точно над точкой данных.Я пытался изменить координаты (x, y), но, похоже, это не изменилось.

Как я могу переместить этот шар в нужное место?

Ответы [ 3 ]

1 голос
/ 12 августа 2011

Боюсь, что использование вашего собственного пользовательского местоположения не входит в область действия подсказки (я знаю, глупо, верно?).Он предназначен для использования только в качестве набора и забудьте об этом.

Если хотите, вы можете создавать свои собственные подсказки к данным, просто используя всплывающий менеджер при наведении курсора на свои данные.У вас будет гораздо больше гибкости и во многих других аспектах, но, конечно, это означает, что вы сможете создавать и тестировать больше кода.

РЕДАКТИРОВАТЬ: Еще одна вещь пришла на ум, и это будетрасширить саму диаграмму, которая управляет всплывающими подсказками, и добавить свои собственные функции, где / как перемещать всплывающую подсказку.Я нашел этот пост о том, как изменить поведение линейных графиков.

1 голос
/ 10 сентября 2012

Просто наткнулся на решение, поэтому я выкладываю для будущих поколений.Просто переопределите функцию перемещения средства визуализации подсказок:

override public function move(x:Number, y:Number):void
{
    super.move(x+10, y+10); // just sample 
}

HTH

0 голосов
/ 12 августа 2011

Вероятно, самым быстрым (но не обязательно хорошим методом) является использование UIComponent в качестве базового класса для вашего dataTipRenderer (UIComponent ничего не измеряет и не выкладывает).Измерьте и разложите все в updateDisplayList и перемещайте все вверх и влево в пределах UIComponent, пока он не окажется там, где вы хотите, относительно точки данных.Оставьте ваш метод measure () пустым (чтобы измеренный размер был 0, 0), и Flex поместит верхний левый угол UIComponent (который вы переместили, чтобы элементы были выше и слева от него) над точкой данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...