有一个mouseUpEvent侦听器连接到主类中的舞台,拖动movieClip时mouseUpEvent不触发处理程序,movieClip获取鼠标。在拖动项目并将鼠标从影片剪辑移开的情况下,即某处不在该项目上,而是在舞台上检测到mouseUp。MouseUpEvent在拖动MovieClip时停止工作
编辑:这里是我使用静态(Singleton)类作为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
this.addEventListener(MouseEvent.MOUSE_UP,stageMouseUpHandler);
的MouseUpHandler在主类
private function stageMouseUpHandler(event:MouseEvent):void
{
DragManager.itemMouseUpHandler(event);
}
如果有什么不对的技术请指导我,我的目标是实现各层之间的拖放,并尽可能减少耦合。
你可以发布你添加事件监听器的位置吗?可能有很多事情,但发布代码将是解决它的最简单方法 – 2010-05-03 17:16:15