【发布时间】:2010-05-03 17:05:03
【问题描述】:
在主类的舞台上附加了一个 mouseUpEvent 侦听器,在拖动movieClip时,mouseUpEvent不会触发处理程序,并且movieClip会粘在鼠标上。当项目被拖动并且鼠标从movieClip移开时,即检测到mouseUp不在项目上但在舞台上的某个地方。
编辑:这是我使用静态(单例)类作为movieClip 作为“DragManager”的场景。每当必须拖动movieClip 时,它都会传递给DragManager 并作为子级添加,当检测到来自舞台的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);
主类中的 MouseUpHandler
private function stageMouseUpHandler(event:MouseEvent):void
{
DragManager.itemMouseUpHandler(event);
}
如果技术有问题请指导我,我的目标是在各个层之间实现拖放,并尽可能减少耦合。
【问题讨论】:
-
您可以发布您要添加事件侦听器的位置吗?可能有很多事情,但发布代码将是解决问题的最简单方法
标签: actionscript-3 action