Цвета легенды не отображаются в Flex Mobile Project? - PullRequest
1 голос
/ 06 февраля 2012

Я новичок во Flex и недавно начал работать с мобильными проектами Flex, использующими Flash Builder 4.6.Этот проект предназначен для Android .

Я хотел добавить эффекты в круговую диаграмму и использовал:

<mx:SeriesInterpolate id="interpol" 
duration="1000" 
elementOffset="0" 
minimumElementDuration="200"
/>

Весь код выглядит следующим образом:

<?xml version="1.0" encoding="utf-8"?>
<s:View xmlns:fx="http://ns.adobe.com/mxml/2009"
        xmlns:s="library://ns.adobe.com/flex/spark"
        xmlns:mx="library://ns.adobe.com/flex/mx"
        creationComplete="init()"
        title="Pie Chart">


    <fx:Script>
        <![CDATA[ 
        import mx.charts.events.ChartItemEvent;
        import mx.collections.ArrayCollection;


        [Bindable]
        public var expenses:ArrayCollection = new ArrayCollection([
        { Expense:"Taxes", Amount:2000 },
        { Expense:"Rent", Amount:1000 },
        { Expense:"Timepass", Amount:500 },
        { Expense:"Screwing Around", Amount:3200 },
        { Expense:"Food", Amount:200 } ]);


        private function init():void
        {
            pieSeries1.setStyle("showDataEffect", interpol);
            myPieChart.dataProvider=expenses;
        }

        private function setLegends():void
        {
            pieLegend.dataProvider=myPieChart;
        }

        private function pieChart_itemClick(event:ChartItemEvent):void
        {
            pieHighlight( event.currentTarget.id , event.hitData.chartItem.index );
        }

        private function pieHighlight( pieName:String, pieIndex:int ):void
        {
            var explodeData:Array = [];  //create an empty array
            explodeData[ pieIndex ] = 0.15; //Set the index of our pie piece to > 0
            this[pieName].series[0].perWedgeExplodeRadius = explodeData;
            myPieChart.dataProvider=expenses;
        }

        ]]> 
    </fx:Script>

    <fx:Declarations>
        <!-- Place non-visual elements (e.g., services, value objects) here -->
        <mx:SeriesInterpolate id="interpol" 
                              duration="1000" 
                              elementOffset="0" 
                              minimumElementDuration="200"
                              />
    </fx:Declarations>

    <mx:PieChart id="myPieChart" x="49" y="93" width="100%" height="100%" itemClick="pieChart_itemClick(event);"
                   selectionMode="multiple" showDataTips="true" creationComplete="setLegends();">
        <mx:series>
            <mx:PieSeries id="pieSeries1" field="Amount" labelPosition="callout" nameField="Expense"/>
        </mx:series>
    </mx:PieChart>
    <mx:Legend id="pieLegend"/>
</s:View>

Я заметил, что когда я динамически устанавливаю dataProvider ( myPieChart.dataProvider =расходы ), эффекты имеют место.Эффекты включают эффект « swipe-open » и эффект « осторожно выдвигающийся срез ».Тем не менее, у Легенд есть ярлык, но нет цвета .

Почему происходит, и Что является решением для этого?

Заранее благодарим за любую помощь, которую вы можете предоставить ..

Вот скриншот:

Pie Chart View

Ответы [ 2 ]

2 голосов
/ 21 апреля 2012

удаление последовательной интерполяции может решить проблему. Это сработало для меня.

1 голос
/ 26 апреля 2012

Существует некоторая проблема с эффектом seriesinterpolate. Если удалить эффект, все работает нормально, поэтому, пожалуйста, обратитесь к ссылке для динамического рисования легенды http://help.adobe.com/en_US/flex/using/WS2db454920e96a9e51e63e3d11c0bf69084-7c3e.html

...