我有一個AIR應用程序。應該用鼠標在屏幕上移動。爲了實現這一點,我使用事件:在屏幕上拖動AIR應用程序窗口
this.stage.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown, true,-2);
應該具有最低優先級相比例如那些應該滾動插入的元素被激活,點擊等
我試圖解決方案示出下面將事件優先級設置爲-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();
不起作用。
也許我的解決方案不是最適合實現這一目標的解決方案。有更好的解決方案嗎?
克里斯
我的意思是使用鼠標在屏幕上拖動AIR應用程序窗口。如果沒有chrome應用程序(控制條不存在,那麼)單擊應用程序邊框應該是拖動的起點。 – chrisiek