Flex BubbleChart - 使气泡大小相对于图表的大小?

时间:2011-01-12 21:03:45

标签: flex actionscript-3 actionscript flex3

我想知道在图表大小调整大小时是否有任何方法可以使气泡大小缩放或调整大小。如果气泡设置为特定的像素大小,似乎大小已设置,就是这样。因此,如果您的图表很大,则气泡的大小为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 :(得分:0)

您可以做的是,在您的应用程序中添加一个resize事件。

<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>

或者您始终可以使用缩放转换。 但以上是通过它的正确方法。