Actionscript 在as3中获取鼠标单击屏幕X和屏幕Y
我想获得鼠标点击屏幕坐标(通过点击AIR应用程序窗口外部) 我尝试了以下操作,但没有得到任何结果,似乎ScreenMouseeEvent.CLICK事件未被调度Actionscript 在as3中获取鼠标单击屏幕X和屏幕Y,actionscript,actionscript-3,Actionscript,Actionscript 3,我想获得鼠标点击屏幕坐标(通过点击AIR应用程序窗口外部) 我尝试了以下操作,但没有得到任何结果,似乎ScreenMouseeEvent.CLICK事件未被调度 public function Main():void { if (NativeApplication.supportsSystemTrayIcon)//testExpression return true { SystemTrayIcon(NativeApplication.
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 :(
}
ScreenMouseEvent
仅由SystemTrayIcon
调度(仅限Windows/Linux)。从NativeApplication.NativeApplication.icon
检索SystemTrayIcon
实例(DockIcon
,适用于MacOs)。
因此,在指定托盘图标图形后,应在此处附加事件侦听器:
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);
请注意,
ScreenMouseeEvent
的结果screenX
和screenY
属性被限制在托盘中的图标区域,而不是整个桌面屏幕(这并不奇怪,因为这是您首先添加事件的地方)。我以前从未使用过ScreenMouseeEvent
,但它看起来只是从SystemTrayIcon
类中调度的。你可能不得不以某种方式将你的听众加入其中。ScreenMouseEvent的文档: