Метки Flex-диаграммы не обновляются при обновлении данных? (ПОС) - PullRequest
0 голосов
/ 08 мая 2009

альтернативный текст http://www.mattdell.com/hostedfiles/flexchartissue.bmp

У меня возникла проблема, из-за которой метки на моей круговой диаграмме не исчезают при обновлении данных. На рисунке выше график слева / перед - это то, как график загружается по умолчанию. При выборе другого элемента в раскрывающемся списке диаграмма изменяется справа / после диаграммы, но метка «Под угрозой» не исчезает. То же самое касается другого выбора, где «В работе» не уходит.

Кто-нибудь еще случался с ними? Я не могу найти никакой информации об этом!

Спасибо!

Матф

Ответы [ 3 ]

4 голосов
/ 09 мая 2009

Я столкнулся с этой проблемой, и мне потребовалось некоторое время, чтобы найти обходной путь для этой ошибки.

Чтобы исправить это, я устанавливаю серию PieChart, когда установлена ​​базовая коллекция dataProvider и каждый раз, когда эта коллекция изменяется:

<?xml version="1.0" encoding="utf-8"?>
<mx:PieChart xmlns:mx="http://www.adobe.com/2006/mxml"
    dataProvider="{dataForPieChart}">
    <mx:Script>
        <![CDATA[
            import mx.events.CollectionEvent;
            import mx.collections.ArrayCollection;
            import mx.charts.series.PieSeries;

            [Bindable]
            private var _dataForPieChart:ArrayCollection;

            public function set dataForPieChart(value:ArrayCollection):void
            {
                _dataForPieChart = value;

                /* Add a Collection Change Event Listener to the Collection. */
                _dataForPieChart.addEventListener(
                    CollectionEvent.COLLECTION_CHANGE, 
                    dataForPieChart_collectionChangeHandler);

                reloadPieSeries();
            }

            public function get dataForPieChart():ArrayCollection
            {
                return _dataForPieChart;
            }

            private function dataForPieChart_collectionChangeHandler(
                event:CollectionEvent):void
            {
                reloadPieSeries();
            }

            private function reloadPieSeries():void
            {
                series = new PieSeries();

                series.field = "myValue";

                series.labelPosition = "callout";
            }
        ]]>
    </mx:Script>
</mx:PieChart>
1 голос
/ 09 мая 2009

Как выглядят ваши данные в обоих случаях? Я предполагаю, что у вас есть данные серии, значение которых равно 0, что может привести к визуализации метки без видимого среза на круговой диаграмме. Попробуйте отфильтровать данные по 0 значениям или использовать пользовательскую функцию метки, чтобы не отображать метку, если значение поля равно 0.

(обратите внимание, это всего лишь предположение)

0 голосов
/ 04 декабря 2009

Решение, предложенное Эриком Белэйром, прекрасно работает для меня, вот мой код в функции, которая обновляет данные в infoPA, поставщике данных PCgrafico PieChart. Я надеюсь, что это может помочь, если кто-то испытывает это тоже

infoPA=evt.result.data.infoPA.estado;

PCgrafico.series=null;
var vectorSeries:Array=new Array();

var series:PieSeries=new PieSeries();
series.field="totalPA";            
series.nameField="estadoPA";
series.setStyle("labelPosition", "callout");
series.setStyle("showDataEffect", effect);
vectorSeries.push(series);
PCgrafico.series=vectorSeries;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...