Apache flex 在基于桌面的应用程序中跟踪窗口外的鼠标?

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

离开一段时间后,我将回到Flex/AIR,所以这可能是一个非常基本的问题

我有一个基于窗口的桌面AIR应用程序。它有一个侧边栏/控制面板类型的功能,在用户将鼠标X移动到舞台/窗口左侧<5 px之前,该功能是隐藏的。然后,如果显示侧边栏,则如果用户将鼠标X移动到>220,侧边栏将隐藏。简单

我遇到了一个愚蠢的问题,用户可以太快地向左移动鼠标,越过窗口的左侧,而我打开侧边栏的例程没有被调用。我尝试过单独或组合使用ENTER_FRAME、MOUSE_MOVE和MOUSE_OUT,但仍然很容易让边栏例程失败

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-这很有效,谢谢!