有一個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