3

デフォルトのマウスアップ/マウスダウン動作を無効にせずに、フレックス コントロールでダブルクリック イベントを有効にしようとしています。

私は、arcgis サーバーに ESRI Flex API を使用しており、1 つの背景レイヤーと GraphicLayer を持つマップ コントロールを持っています。グラフィック レイヤーには、マウスオーバーに応答するいくつかの Graphic オブジェクトがあり、ユーザーがクリック アンド ホールドするとマップをパンできます。しかし、グラフィック オブジェクトにダブルクリック イベント ハンドラーを実装すると、デフォルトの動作がマップに反映されなくなりました。

クリックして保持することによる古い動作を維持しながら、Graphic オブジェクトをダブルクリックする方法はありますか?

4

2 に答える 2

3

グラフィックではなくマップにダブルクリック イベントをアタッチし、イベントのターゲット属性を使用して使用したいグラフィックを取得することで、これを解決しました。

このような:

map.addEventListener(MouseEvent.DOUBLE_CLICK, function(event:MouseEvent):void
{
    var graphic:Graphic = event.target as Graphic;
    if(graphic)
    {
        ...
    }
});
于 2010-01-18T21:59:33.353 に答える
3

Graphic オブジェクトで「checkForMouseListeners」プロパティを false に設定すると、デフォルトのマップのクリック/ドラッグ動作が保持されます。

graphic.addEventListener(MouseEvent.DOUBLE_CLICK, function(event:MouseEvent):void {
    var graphic:Graphic = event.target as Graphic;
    if(graphic) {
      ...
    }
});

//preserve the default click/drag behavior on the map
graphic.checkForMouseListeners = false;

http://resources.esri.com/help/9.3/ArcGISServer/apis/Flex/apiref/com/esri/ags/Graphic.html#checkForMouseListeners

于 2010-02-22T17:24:34.430 に答える