как сделать клик и дважды щелкнуть вместе в расширенной сетке данных - PullRequest
0 голосов
/ 29 марта 2012

Я хочу прослушивать события щелчка и двойного щелчка для расширенной сетки данных в flex.Я дал двойной клик включен true и написал функцию в itemdoubleclick, но работает только клик, но не itemdoubleclick. Можете ли вы мне помочь.Спасибо

1 Ответ

2 голосов
/ 29 марта 2012

Вы, вероятно, поступили правильно, но таблица данных не очень хорошо обрабатывает щелчок и двойной щелчок, для этого можно использовать обходной путь:

сначала свойства сетки данных:

<s:DataGrid 
    dataProvider="{lista}"
    click="click(event)"        
    doubleClickEnabled="true"       
    doubleClick="doubleClick(event)">

, тогда обработчик щелчка запускает таймер, и, если таймер успешно завершает событие одиночного щелчка, отправляется, в противном случае, если вы дважды щелкнете по таймеру, остановится и вы обработаете событие двойного щелчка ...

лучше, чем все остальное ...

// A timer used to check if is a single or doubleclick
private var t:Timer;
protected function click(event:MouseEvent):void
{ // on single click you start a timer, the dalay 
  // is 500 but you can set what you prefer             
    t = new Timer(500,1);
    t.addEventListener(TimerEvent.TIMER_COMPLETE, singleClick);
    t.start();
}

protected function singleClick(e:TimerEvent):void
{
  // if the timer complete correctly this method is called and 
  // here you manage the single click event 
    t.removeEventListener(TimerEvent.TIMER_COMPLETE,singleClick);
    trace("single click");              
}

protected function doubleClick(event:MouseEvent):void
{
  // on double click you remove the timer event listener and you stop it if it's running
  // here you manage the double click event...       
    t.removeEventListener(TimerEvent.TIMER_COMPLETE,singleClick);
    if (t.running)
        t.stop();
      trace("double click");
}

Надеюсь, это поможет ...

...