0

我遇到了可拖动菜单(包括菜单按钮项)的问题。在拖动操作结束时(当我从屏幕上抬起手指时),一个按钮子项因其 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)); 
}

谢谢..

我的示例文件在这里

4

1 回答 1

0

更新:
我弄错了。我建议在拖动父剪辑时切换一个标志,如果是,则忽略子剪辑中的MOUSE_UP事件true

在父级中:

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?");
    }   
}
于 2016-07-28T11:29:42.217 回答