我想获得鼠标点击屏幕坐标(通过在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 :(
}
发布于 2013-04-08 23:57:59
ScreenMouseEvent
仅由SystemTrayIcon
调度(仅限Windows/Linux)。而SystemTrayIcon
实例(用于MacOs的DockIcon
)是从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);
请注意,由此产生的ScreenMouseEvent
的screenX
和screenY
属性被限制在任务栏中的图标区域内,而不是整个桌面屏幕(这并不奇怪,因为这是您最初添加事件的位置)。
https://stackoverflow.com/questions/15869182
复制