MouseMove 结束后或拖动事件菜单保持释放菜单项
After end of MouseMove or drag event menu keeping from release menu items
我在使用包含菜单按钮项的可拖动菜单时遇到问题。
在拖动操作结束时(当我从屏幕上抬起手指时)一个按钮子项目因为它的 MOUSE_UP 代码而起作用。
我需要拖放我的菜单。在下拉菜单按钮项目之后,监听器应该开始释放 (MOUSE_UP)。我怎样才能将它们分开?
我阅读了一些类似的消息,但无法解决我的问题。
我的代码:
addEventListener(MouseEvent.MOUSE_MOVE, dragStart);
addEventListener(MouseEvent.MOUSE_UP, dragStop);
function dragStart(e:MouseEvent):void {
e.currentTarget.startDrag(false,new Rectangle(0,0,500,0));
}
function dragStop(e:MouseEvent):void {
e.currentTarget.stopDrag(false,new Rectangle(0,0,500,0));
}
谢谢..
更新:
我弄错了。我建议在拖动 parent 剪辑时切换一个标志,如果 true
则忽略 children 中的 MOUSE_UP
事件。
在parent中:
var dragging:Boolean = false;
function dragStart(e:MouseEvent):void{
e.currentTarget.startDrag(false,new Rectangle(0,0,500,0));
dragging = true;
}
function dragStop(e:MouseEvent):void{
e.currentTarget.stopDrag();
removeEventListener(MouseEvent.MOUSE_MOVE, dragStart);
dragging = false;
}
在subItem
中:
function BTN(e:MouseEvent):void{
if(!(parent as MovieClip).dragging){
trace("I'm a button: "+this+" Did you hit me when you sliding?");
}
}
我在使用包含菜单按钮项的可拖动菜单时遇到问题。 在拖动操作结束时(当我从屏幕上抬起手指时)一个按钮子项目因为它的 MOUSE_UP 代码而起作用。
我需要拖放我的菜单。在下拉菜单按钮项目之后,监听器应该开始释放 (MOUSE_UP)。我怎样才能将它们分开?
我阅读了一些类似的消息,但无法解决我的问题。
我的代码:
addEventListener(MouseEvent.MOUSE_MOVE, dragStart);
addEventListener(MouseEvent.MOUSE_UP, dragStop);
function dragStart(e:MouseEvent):void {
e.currentTarget.startDrag(false,new Rectangle(0,0,500,0));
}
function dragStop(e:MouseEvent):void {
e.currentTarget.stopDrag(false,new Rectangle(0,0,500,0));
}
谢谢..
更新:
我弄错了。我建议在拖动 parent 剪辑时切换一个标志,如果 true
则忽略 children 中的 MOUSE_UP
事件。
在parent中:
var dragging:Boolean = false;
function dragStart(e:MouseEvent):void{
e.currentTarget.startDrag(false,new Rectangle(0,0,500,0));
dragging = true;
}
function dragStop(e:MouseEvent):void{
e.currentTarget.stopDrag();
removeEventListener(MouseEvent.MOUSE_MOVE, dragStart);
dragging = false;
}
在subItem
中:
function BTN(e:MouseEvent):void{
if(!(parent as MovieClip).dragging){
trace("I'm a button: "+this+" Did you hit me when you sliding?");
}
}