2012-04-03 5 views
0

キーボードショートカットとマウスクリックの組み合わせでMapMouseEventを起動したいと思います。これは私が持っているものの一部である、と私はロジックが正しいかどうかを確認していない:私はこのサイト上で同様の例を見てきましたが、それでもすべての解に到達していないFLEXでMapMouseEventをalt +マウスでクリックして起動する

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

答えて

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. 
     } 
    } 
+0

ちょっとサム:回答いただきありがとうございます。私は少し遅れていた(遅く返事)ので、それについては申し訳ありません。そうですね、ここでelse文を除外する方がよいでしょう。私はそれを得ることができるかどうか確認するためにそれをチェックします... –

関連する問題