【问题标题】:Trigger Flex Piechart Item click event when a Datagrid Item is clicked单击 Datagrid Item 时触发 Flex Piechart Item 单击事件
【发布时间】:2011-12-22 00:54:10
【问题描述】:

是否可以在单击 Datagrid Item 时触发 Flex Piechart Item 单击事件。 如果可以的话,谁能举个例子。

【问题讨论】:

    标签: actionscript-3 apache-flex actionscript charts flex3


    【解决方案1】:

    我会采取一些不同的方式,然后尝试在 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.
        }
    

    【讨论】:

      【解决方案2】:

      是的,只要单击数据网格或任何其他元素,它就有可能触发 itemClick 事件。这里重要的是数据网格中项目的 --index-- 应该是 --index-- 的函数饼图中的项目。

      任何图表都有一个“series”元素,任何“series”元素都包含“items”数组。 您可以使用 flex 触发机制触发悬停/单击此“项目”。

      【讨论】:

        【解决方案3】:

        您好,经过谷歌搜索找到了解决方案, Neeraj & Nate 为 cmets 设计的 Tnks。

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

        【讨论】:

          猜你喜欢
          • 2011-02-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-11-28
          • 1970-01-01
          • 1970-01-01
          • 2012-01-25
          相关资源
          最近更新 更多