Apache flex 在基于桌面的应用程序中跟踪窗口外的鼠标?
离开一段时间后,我将回到Flex/AIR,所以这可能是一个非常基本的问题 我有一个基于窗口的桌面AIR应用程序。它有一个侧边栏/控制面板类型的功能,在用户将鼠标X移动到舞台/窗口左侧<5 px之前,该功能是隐藏的。然后,如果显示侧边栏,则如果用户将鼠标X移动到>220,侧边栏将隐藏。简单 我遇到了一个愚蠢的问题,用户可以太快地向左移动鼠标,越过窗口的左侧,而我打开侧边栏的例程没有被调用。我尝试过单独或组合使用ENTER_FRAME、MOUSE_MOVE和MOUSE_OUT,但仍然很容易让边栏例程失败Apache flex 在基于桌面的应用程序中跟踪窗口外的鼠标?,apache-flex,air,flex4,flex4.5,Apache Flex,Air,Flex4,Flex4.5,离开一段时间后,我将回到Flex/AIR,所以这可能是一个非常基本的问题 我有一个基于窗口的桌面AIR应用程序。它有一个侧边栏/控制面板类型的功能,在用户将鼠标X移动到舞台/窗口左侧220,侧边栏将隐藏。简单 我遇到了一个愚蠢的问题,用户可以太快地向左移动鼠标,越过窗口的左侧,而我打开侧边栏的例程没有被调用。我尝试过单独或组合使用ENTER_FRAME、MOUSE_MOVE和MOUSE_OUT,但仍然很容易让边栏例程失败 this.stage.addEventListener(Event.ENT
this.stage.addEventListener(Event.ENTER_FRAME, controlPanelDisplayHandler);
this.stage.addEventListener(MouseEvent.MOUSE_MOVE, controlPanelDisplayHandler);
this.stage.addEventListener(MouseEvent.MOUSE_OUT, controlPanelDisplayHandler);
在我显示/隐藏侧边栏的例行程序中,我看到了ENTER_FRAME事件的痕迹,但它保留了鼠标离开窗口之前所知道的最后一个鼠标位置,而不是桌面矩形中的当前鼠标位置
我似乎记得这周围有一些安全问题,但已经很久了。有人能建议一种方法来实现这个简单的功能吗
private function controlPanelDisplayHandler(event:Event):void
{
trace("mouseX" + this.stage.mouseX);
if (sidebarDisplayed == false){
if (mouseX <= 5){
sidebarDisplayed = true;
showSidebar();
}
} else if (sidebarDisplayed == true){
if (mouseX >= 240){
sidebarDisplayed = false;
hideSidebar();
}
}
专用函数controlPanelDisplayHandler(事件:事件):void
{
trace(“mouseX”+this.stage.mouseX);
如果(sidebarDisplayed==false){
如果(mouseX=240){
sidebarDisplayed=假;
hideSidebar();
}
}
也是Flex的新手,可能没有帮助,但您是否尝试过事件。鼠标离开
可能会给你带来同样的问题,但不确定。谢谢你的建议!我刚刚尝试过,但得到了相同的结果:快速移动鼠标,事件似乎不会启动。啊。愚蠢的小事情应该很容易。希望明天我能以新的眼光看到我在做一些愚蠢的事情。可以帮助下面的链接:-@MaheshParate-这很有效,谢谢!