2011-11-04 65 views

回答

0

您好在谷歌搜索後找到解決方案, Tnks爲Neeraj的評論& Nate。

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"> 
    <mx:Script><![CDATA[ 
     import mx.charts.*; 
     import mx.collections.ArrayCollection; 
     import mx.events.ListEvent; 
     import mx.graphics.GradientEntry; 
     import mx.graphics.LinearGradient; 

     [Bindable] 
     public var explodingArray:Array = [0,0,0,0,0,0]; 

     private function explodeSlice(e:ListEvent):void{ 
      explodingArray = [0,0,0,0,0,0]; 
      explodingArray[e.rowIndex]=0.1; 
      pie1.series[0].perWedgeExplodeRadius = explodingArray; 
      expenses2.refresh(); 
     }  

     [Bindable] 
     public var expenses2:ArrayCollection = new ArrayCollection([ 
      {Tissues: "Large Intestine", TissueCount: 149}, 
      {Tissues: "Lung", TissueCount: 127},    
      {Tissues: "Pancreas", TissueCount: 84}, 
      {Tissues: "Biliary Tract", TissueCount: 58}, 
      {Tissues: "Haematopoietic and Lymphoid tissue", TissueCount: 20} 
     ]);  

    ]]></mx:Script> 



    <mx:DataGrid dataProvider="{expenses2}" editable="false" itemClick="explodeSlice(event)" > 
     <mx:columns> 
      <mx:DataGridColumn dataField="TissueCount" headerText="Tissues Count"/> 
      <mx:DataGridColumn dataField="Tissues" headerText="Tissues"/> 
     </mx:columns> 
    </mx:DataGrid> 

    <mx:SeriesInterpolate id="interpolate" duration="1000"/> 
    <mx:HBox> 
     <mx:Panel title="Exploding Pie Chart (animated)"> 
      <mx:PieChart id="pie1" dataProvider="{expenses2}" showDataTips="true" selectionMode="single"> 
       <mx:series> 
        <mx:PieSeries field="TissueCount" nameField="Tissues" perWedgeExplodeRadius="{explodingArray}" showDataEffect="interpolate"/> 
       </mx:series> 
      </mx:PieChart> 
      <mx:Legend dataProvider="{pie1}"/> 
     </mx:Panel> 
    </mx:HBox> 

</mx:Application> 
0

我會對此稍加改動,然後嘗試在PieChart上引發一個事件。我會嘗試封裝您的餅圖邏輯到一個新的功能

如果你有這樣的餅圖上的一個事件:

private function PieChartClick(event:ItemEvent):void{ 
     DoPieChartClick(); 
    } 

    private function DoPieChartClick():void{ 
     var selectedItem = picChart.SelectedItem; 
     //do the rest of your logic 
    } 

    private function DataGridClick(event:ItemEvent):void{ 
     //do your datagrid stuff 
     DoPieChartClick(); //This would be like you clicked on the pie chart. 
    } 
0

是其可能觸發itemClick事件每當DataGrid或其他任何元素被點擊。這裏最重要的是數據網格中項目的--index--應該是餅圖中項目的--index--的函數。

任何圖表都有一個「系列」元素,任何「系列」元素都有「項目」數組。 您可以使用彈性觸發機制觸發懸停/點擊此「項目」。