プロプログラマ

プログラマーを職業としてます。 Flex,Air,C#,Oracle,HTML+JSの言語ノウハウを中心に情報発信していきます

[Flex] Spark版DataGridのダブルクリックが機敏すぎるときの対応

Sparkの新しいDataGridダブルクリックのイベントを書くと、
想定外にダブルクリックとして判定されてしまう場合があります。

以下のような場合です。

(1) 1行目をクリック
(2) 即座に2行目をクリック
→2行目のダブルクリックとして検出されてしまう。

仕様なのか知りませんが、かなりうっとおしい動きなので、以下のような形で回避をしています。
ご参考までに。

 


// ダブルクリック検出のための1回目のクリック行インデックス
private var firstClickRowIndex:int = -1;

/**
* 一覧で行がクリックされたとき

* ダブルクリックイベント前に1回目のクリックされた行を覚えておく
* ※行のダブルクリック時に、1回目と2回目のクリック行が違う場合でもダブルクリックとして認識されてしまう問題の回避策
*/
public function gridClickHandler(event:GridEvent):void {
firstClickRowIndex = event.rowIndex;
}

/**
* 一覧で行がダブルクリックされたとき
*/
public function gridDoubleClickHandler(event:GridEvent):void {
var secondClickRowIndex:int = event.rowIndex;
// ダブルクリックの1回目の2回目のクリックされた行が同じ場合のみ、行のダブルクリックとみなす
if (firstClickRowIndex == secondClickRowIndex) {
if (event.item) {
// 処理
}
}
}

最初のクリックイベントでクリックされた行を覚えておき、
ダブルクリックイベントで、クリックされた時の行と同じかどうかを判断します。

一応回避できています。

 

== ランキングに参加しています。ぜひクリックお願いします ==

プログラム ブログランキングへ
にほんブログ村 IT技術ブログへ
にほんブログ村

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください