2011-07-31 7 views
1

私はAIRアプリケーションを持っています。それはマウスで画面の周りを移動する必要があります。私は、イベントを使用し、これを達成するために:AIRアプリケーションウィンドウを画面上でドラッグする

this.stage.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown, true,-2); 

スクロールされるべきものは、クリック例えば挿入された要素に比べ最も低い優先的に活性化されるべきである、等

I図示溶液を試しイベントの優先順位は-1に設定されています.2つのイベントが発生する可能性があります。移動するアプリケーションイベントは、最後に処理するイベントである必要があります。まったく処理しないでください。

<?xml version="1.0" encoding="utf-8"?> 
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 
         xmlns:s="library://ns.adobe.com/flex/spark" 
         xmlns:mx="library://ns.adobe.com/flex/mx" 
         width="200" 
         height="200" 
         applicationComplete="init()"> 
    <fx:Script> 
     <![CDATA[ 
      import mx.core.Window; 
      import mx.events.ScrollEvent; 

      private function init():void { 
       this.stage.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown, true,-2); 
      } 

      private function onMouseDown(event:MouseEvent):void { 
       trace("clicked on stage "+event.currentTarget.toString()); 
       if(event.currentTarget == stage){ 
        trace("catched stage target"); 
        this.nativeWindow.startMove(); 
        event.stopImmediatePropagation(); 
       } 

      } 
      function scrolledCanvasHandler(event:ScrollEvent){ 
       trace("clicked on canvas "+event.currentTarget.toString()); 
       event.stopPropagation(); 
      } 

     ]]> 
    </fx:Script> 
    <mx:Canvas x="29" y="34" width="80%" height="80%" backgroundColor="#343434" scroll="scrolledCanvasHandler(event)"> 
     <mx:Label x="25" y="77" text="moving window, moving window" 
        fontSize="18" color="#FFFFFF" fontWeight="bold"/> 

    </mx:Canvas> 
</s:WindowedApplication> 

あなたは

event.stopPropagation(); 

は動作しませんわかりますとおり。

おそらく私の解決策はこれを達成するのに最適ではありません。より良い解決策はありますか?私は私のアプリでやったことだ

クリス

+0

これは、マウスを使用してAIRアプリケーションウィンドウを画面上にドラッグすることを意味していました。クロムアプリケーションがない場合(コントロールストリップが存在しない場合)、アプリケーションの枠内をクリックするとドラッグの開始点になります。 – chrisiek

答えて

2

<s:HGroup id="appTitleBar" 
    width="100%" height="35" 
    styleName="titleBar" 
    mouseDown="nativeWindow.startMove();" 
    doubleClickEnabled="true" 
    doubleClick="nativeWindow.minimize();" 
    contentBackgroundColor="#313131"/> 

クリック(+ドラッグ)これのhgroupには、ウィンドウをドラッグします。 duobleclickはそれを最小限に抑えます。

編集 あなたのアプリケーション全体をドラッグできないようにすると、これはユーザーを混乱させるだけです。 とbtwの優先順位は負ではない肯定的でなければなりません。誰にとっても期待される行動ではない。

+0

それは素晴らしい解決策のように見えます。これを共有してくれてありがとう。 – chrisiek

関連する問題