1

我想获取鼠标点击屏幕坐标(通过在 AIR 应用程序窗口外点击)

我尝试了以下操作,但没有得到任何结果,似乎 ScreenMouseEvent.CLICK 事件未调度。

public function Main():void 
{   
if (NativeApplication.supportsSystemTrayIcon)//testExpression return true 
    {            
         SystemTrayIcon(NativeApplication.nativeApplication.icon).
         addEventListener(ScreenMouseEvent.CLICK, click);
    }
}

private function click(e:ScreenMouseEvent):void 
{
      trace(e.screenX);//nothing displayed :(
}   
4

1 回答 1

0

由唯一(仅限 Windows/Linux)ScreenMouseEvent分派。SystemTrayIcon并且SystemTrayIcon实例(DockIcon对于 MacOs)是从NativeApplication.nativeApplication.icon.
因此,在指定托盘图标图形后,您应该在此处附加事件侦听器:

var sti:SystemTrayIcon = NativeApplication.nativeApplication.icon as SystemTrayIcon;
// Specifying an icon is obligatory on Windows - MacOs has a default icon
sti.bitmaps = [new IconAsset()]; // IconAsset = Embedded picture
sti.addEventListener(ScreenMouseEvent.CLICK, mouseClick);

请注意,结果screenXscreenY属性ScreenMouseEvent仅限于托盘中的图标区域,而不是整个桌面屏幕(不足为奇,因为这是您首先添加事件的地方)。

于 2013-04-08T23:57:58.783 回答