0

キーボード ショートカットとマウス クリックを組み合わせて MapMouseEvent を起動したいと考えています。これは私が持っているものの一部であり、ロジックが正しいかどうかはわかりません:

private function MapClick(event:MapMouseEvent):void 
  {
    if (event.altKey) altPressed = true;
        {
           Alert.show("Alt key has been pressed - click on screen");
           // launch the function here
        }
    else
        {
           Alert.show(" Must click Alt key first, then click on map");
        }
  }

このサイトで同様の例を見てきましたが、まだ解決には至っていません。FLEX を知っている人が、基本的に一連のキーボード ショートカットを介して機能を起動するのを手伝ってくれることを願っています。例: Alt + マウス クリック、または Shift + マウス クリック、またはそれらの線に沿った何か。その理由は、単にマウスをクリックするだけで、すでに画面上で別のことが行われているからです。

ありがとう ...

RJ

4

1 に答える 1

0

あなたが提供したコードは非常に正しいものに近いです。

private function MapClick(event:MapMouseEvent):void 
  {
    if (event.altKey);
        {
           //This means alt is held, AND a click occurred.
           //run function for alt-click here
        }

    if (event.ctrlKey);
        {
           //This means ctrl is held, alt was *not* held, AND a click occurred.
           //run function for ctrl-click here
        }

    if (!event.ctrlKey && !event.altKey)
        {
           //this means that a click occurred, without the user holding alt or ctrl
           //run function for normal click here.
        }
  }

私がこれを書いた方法では、ユーザーがctrl + altを押しながらクリックすると、両方の関数が実行されます。altをctrlなどよりも優先させたい場合は、以下のコードが機能します。

private function MapClick(event:MapMouseEvent):void 
  {
    if (event.altKey);
        {
           //This means alt is held, AND a click occurred.
           //run function for alt-click here
        }
    else if (event.ctrlKey);
        {
           //This means ctrl is held, AND a click occurred.
           //run function for ctrl-click here
        }
    else
        {
           //this means that a click occurred, without the user holding alt or ctrl
           //run function for normal click here.
        }
  }
于 2012-04-11T18:45:07.057 に答える