1 Reply Latest reply on Nov 18, 2008 11:05 AM by Gregory Lafrance

    problem in capturing key board event

    smonika15
      Hi
      I am trying chart selection using keyboard.I tried same example given in " http://livedocs.adobe.com/flex/3/datavis_flex3.pdf"
      code is
      <?xml version="1.0" ?>
      <!-- charts/SelectAllItems.mxml -->
      <mx:Application xmlns:mx=" http://www.adobe.com/2006/mxml" creationComplete="initApp()">
      <mx:Script>
      <![CDATA[
      import mx.collections.ArrayCollection;
      import flash.events.KeyboardEvent;
      import mx.charts.events.ChartItemEvent;
      [Bindable]
      private var expensesAC:ArrayCollection = new ArrayCollection( [
      { Month: "Jan", Profit: 2000, Expenses: 1500, Amount: 450 },
      { Month: "Feb", Profit: 1000, Expenses: 200, Amount: 600 },
      { Month: "Mar", Profit: 1500, Expenses: 500, Amount: 300 },
      { Month: "Apr", Profit: 1800, Expenses: 1200, Amount: 900 },
      { Month: "May", Profit: 2400, Expenses: 575, Amount: 500 } ]);
      private function initApp():void {
      application.addEventListener(KeyboardEvent.KEY_UP, keyHandler);
      }
      private function keyHandler(event:KeyboardEvent):void {
      var ctrlPressed:Boolean = event.ctrlKey;
      // If the user presses Ctrl + A, select all chart items.
      if (ctrlPressed) {
      var curKeyCode:int = event.keyCode;
      if (curKeyCode == 65) { // 65 is the keycode value for 'a'
      selectItems();
      }
      }
      }
      private function selectItems():void {
      // Create an array of all the chart's series.
      var allSeries:Array = myChart.series;
      // Iterate over each series.
      for (var i:int=0; i<allSeries.length; i++) {
      var selectedData:Array = [];
      // Iterate over the number of items in the series.
      for (var j:int=0; j<expensesAC.length; j++) {
      selectedData.push(j);
      }
      // Use the series' selectedIndices property to select all the
      // chart items.
      allSeries .selectedIndices = selectedData;
      }
      }
      ]]>
      </mx:Script>
      <mx:Panel height="100%" width="100%">
      <mx:PlotChart id="myChart"
      height="207"
      width="350"
      showDataTips="true"
      dataProvider="{expensesAC}"
      selectionMode="multiple"
      >
      <mx:series>
      <mx:PlotSeries id="series1"
      xField="Expenses"
      yField="Profit"
      displayName="Expenses/Profit"
      selectable="true"
      />
      <mx:PlotSeries id="series2"
      xField="Amount"
      yField="Expenses"
      displayName="Amount/Expenses"
      selectable="true"
      />
      <mx:PlotSeries id="series3"
      xField="Profit"
      yField="Amount"
      displayName="Profit/Amount"
      selectable="true"
      />
      </mx:series>
      </mx:PlotChart>
      <mx:Legend dataProvider="{myChart}" width="200"/>
      </mx:Panel>
      </mx:Application>

      This example won't work. nothing happen after pressing ctrl +A .

      can any body help me in that?

      Thanks
      sm