2012-04-30 4 views
7

は、私はこれを実行しようとしました:アクションスクリプトでダブルクリックを有効にするにはどうすればよいですか?

panel.addEventListener(MouseEvent.DOUBLE_CLICK,showEditPopup); 

が、それは動作しません。

そう

panel.addEventListener(MouseEvent.CLICK,showEditPopup); 

のために正常に動作し、私は私が最初にダブルクリックを有効にする必要がありますね。それに助けが必要です。

答えて

14

あなたがこれを行うことによって、前に、あなたのパネルのダブルクリックを有効にする必要があります。

panel.doubleClickEnabled=true; 

をそしてあなたが行うことができます:

panel.addEventListener(MouseEvent.DOUBLE_CLICK,showEditPopup); 
+2

メモ:MouseEvent.CLICKもまた2回発砲します。 – WORMSS

+0

ありがとうございましたChapMic Ya that。 – veer7

+0

この回答を受け入れることができますか?ありがとう – ChapMic

1

私はダブルクリックを追加しようと、今朝、この問題を抱えていました私のゲームに。 これは私が見つけたものです。

あなたはこのようにダブルクリックを有効なきゃまず第一に:

panel.addEventListener(MouseEvent.DOUBLE_CLICK,showEditPopup); 

ます。また、このように、時にダブルクリック二回発生するクリックを防止するために、同じ機能に焦がすクリックを追加することができます。

panel.addEventListener(MouseEvent.CLICK,showEditPopup); 

そしてこの時点で1が、両方と相互作用する、関数のようになります。

function showEditPopup(e:MouseEvent) { 
    if (e.type == "click") { 
    //single click 
    } else if (e.type == "doubleClick") { 
    //double click 
    } 
} 

2つの問題が出てきました。まず、リスナーの前に、このようなダブルクリックを有効にお奨め:

panel.enableDoubleClick = true; 

その後悪化した表示オ​​ブジェクトがマウスイベントを持っている別の表示オブジェクトにバインドされている場合、あなたはその子供たちのために、これらのイベントを無効にする必要がありダブルクリック作業。このように:

panel.mouseChildren = false; 

これは私がやっていたものなので、それは悪いことでした。 スキルのあるカードを作成しました。スキルはツールチップを表示するためにmouseevent.move_overを持っていました。しかし、その後、カードをダブルクリックして置く/デッキから取り出したいと思っていました。しかし、そのムービークリップに付いているスキルには、動きがなかったので動作しませんでした。だから私はそれらを無効にし、それを行うための別の方法を見つけなければならなかった。そのマウスチャイルドでツールヒントが表示されず、falseに設定されていたため、私はこれらのイベントを回避する選択肢がありませんでした。

これは、タイマーソリューションが本当に良いアイデアのように思える理由です。ダブルクリックの待機時間は、1秒とすることができます。人々には影響しませんし、最も遅い人にも適合します;)

関連する問題