在我的应用程序中,我现在有一个弹出菜单作为一个BorderContainer实现,它有很多按钮、文本字段、日期选择器等。PopUpManager根据一些UI事件处理它的出现和消失。
我希望能够通过单击容器的任何部分(减去)来拖动容器。换句话说,当我单击按钮、文本字段等时,我希望它们像往常一样响应,因为容器是不可拖的。
我尝试过这个非常简单的实现
_menu.addEventListener(MouseEvent.ROLL_OVER, toggleDragON);
_menu.addEventListener(MouseEvent.ROLL_OUT, toggleDragOFF);
private function mouseDown(event:MouseEvent):void
{
_menu.startDrag();
}
private function mouseReleased(event:MouseEvent):void
{
_menu.stopDrag();
}
但是,这显然不起作用,即所有组件都会导致拖放。我试图确保mouseEnabled和mouseChildren对于所有组件都是正确的,但这似乎没有什么区别。
然后,我遇到了this thread,这很有意义,但我很难相信处理这个问题的最好方法是处理弹出窗口中每个组件的所有单击事件。有什么简单的方法可以做到这点吗?
谢谢!
F
发布于 2010-07-27 02:01:48
检查事件的目标属性以检查它是否等于菜单如何?
if (event.target == _menu) {
_menu.startDrag();
}
https://stackoverflow.com/questions/3340123
复制相似问题