Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 MouseUpEvent在拖动MovieClip时停止工作_Actionscript 3_Action - Fatal编程技术网

Actionscript 3 MouseUpEvent在拖动MovieClip时停止工作

Actionscript 3 MouseUpEvent在拖动MovieClip时停止工作,actionscript-3,action,Actionscript 3,Action,在main类中,有一个mouseUpEvent侦听器连接到stage,当拖动movieClip时,mouseUpEvent不会触发处理程序,movieClip会粘到鼠标上。当项目被拖动并且鼠标从movieClip移开时,即不是在项目上而是在舞台上的某个地方,鼠标被检测到 编辑:下面是我使用静态(单例)类作为movieClip作为“DragManager”的场景。每当必须拖动movieClip时,它将被传递到DragManager并作为子级添加,当检测到来自stage的mouseUp时,将调用Dr

在main类中,有一个mouseUpEvent侦听器连接到stage,当拖动movieClip时,mouseUpEvent不会触发处理程序,movieClip会粘到鼠标上。当项目被拖动并且鼠标从movieClip移开时,即不是在项目上而是在舞台上的某个地方,鼠标被检测到

编辑:下面是我使用静态(单例)类作为movieClip作为“DragManager”的场景。每当必须拖动movieClip时,它将被传递到DragManager并作为子级添加,当检测到来自stage的mouseUp时,将调用DragManager的另一个静态函数来停止拖动并将movieClip放置在适当的层上。这是DragManager中的静态函数,在MouseDown时从各个层调用该函数

public static function startDragMethod(item:Item):void
{
instance.addChild(item);    //This is the instance of the DragManager
var boundArea:Rectangle = new Rectangle(0,0,610,760);
item.startDrag(false,boundArea);
}
在主类的构造函数中,我为MouseUpEvent添加了eventHandler

this.addEventListener(MouseEvent.MOUSE_UP,stageMouseUpHandler);
主课堂上的鼠标手

private function stageMouseUpHandler(event:MouseEvent):void
{
DragManager.itemMouseUpHandler(event);
}

如果技术有问题,请指导我,我的目标是在不同层之间实现拖放,并尽可能减少耦合。

完成任务的方法有很多。在静态侦听器函数或拖动对象时设置一些条件。 像

公共静态函数startDragMethod(项:项):无效 { instance.addChild(item);//这是DragManager的实例 变量边界区域:矩形=新矩形(0,0610760); 项目.startDrag(假,边界区域); 检查=正确; }

私有函数stageMouseUpHandler(事件:MouseEvent):void { 如果(检查==true) { DragManager.itemMouseUpHandler(事件); 检查=错误; }
}

您能将添加事件侦听器的位置张贴到哪里吗?可能有很多事情,但是发布代码将是最简单的解决方法