[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) {
// 処理
}
}
}
最初のクリックイベントでクリックされた行を覚えておき、
ダブルクリックイベントで、クリックされた時の行と同じかどうかを判断します。
一応回避できています。
== ランキングに参加しています。ぜひクリックお願いします ==
[Flex] 表示部品のtextをHTML形式で指定する [日記] ワットモニターで節電意識を高める サンワサプライのワットモニター(TAP-TST8)