Flex BubbleChart - сделать размер пузырька относительно размера диаграммы? - PullRequest
0 голосов
/ 13 января 2011

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

Вот пример приложения, чтобы показать вам, что я имею в виду.Любая помощь или идеи будут оценены?

Спасибо!

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
    <mx:Script>
        <![CDATA[
            import mx.collections.ArrayCollection;
            [Bindable]
            private var s1:ArrayCollection = new ArrayCollection( [
                {"x": 20, "y": 10, "r":10 },
                {"x": 40, "y": 5, "r":20 } ,
                {"x": 60, "y": 0, "r":30 }]);
    ]]>
    </mx:Script>

    <!-- Define custom color and line style for the bubbles. -->
    <mx:SolidColor id="sc1" color="red" alpha=".7"/>
    <mx:Stroke id="stroke1" color="red" weight="2"/>

    <mx:BubbleChart id="myChart" showDataTips="true" height="100%" width="100%"> 
        <mx:series>
            <mx:BubbleSeries 
                dataProvider="{s1}" 
                displayName="series1" 
                xField="x" 
                yField="y" 
                radiusField="r"
                selectable="true"
                fill="{sc1}"
                stroke="{stroke1}"
            />
        </mx:series>   
    </mx:BubbleChart>

</mx:Application>

1 Ответ

0 голосов
/ 13 января 2011

Что вы можете сделать, это добавить событие изменения размера в ваше приложение.

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" resize="handleMainWindowResize()">

В скриптовой части программы объявите функцию и в этой функции измените свойства BubbleSeries:

<mx:Script>
        <![CDATA[
public function handleMainWindowResize():void
{
  //change values of s1 according to the percentage increase (this is important)
            for each(series in myChart.series)
            {
                var bubbleSeries:BubbleSeries= series as BubbleSeries;
                bubbleSeries.dataProvider =s1;//Resetting the data provider with the changed values

            }
}
    ]]>

</mx:Script>

Или вы всегда можете использовать преобразования масштабирования.Но вышесказанное - верный способ пройти через это.

...