2012-03-13 51 views
3

我一直在创建一个Flash文件,其中可以在舞台上拖动和移动多个MovieClip。我已经设置了功能来控制它被拖动的时间,但是当我点击一个MovieClip时,另一个立即将自己附着到另一个。我如何解决这个问题?Actionscript 3.0一次拖动一个MovieClip

下面是代码:

import flash.geom.Point; 

//Add variables and items, such as milk and eggs to stage: 
var milkClickOffset:Point = null; 
var eggClickOffset:Point = null; 

var milk:Milk = new Milk(); 
milk.x = 250; 
milk.y = 250; 
addChild(milk); 

var egg:Egg = new Egg(); 
egg.x = 330; 
egg.y = 330; 
addChild(egg); 

//Milk Event listeners:; 
addEventListener(MouseEvent.MOUSE_DOWN, startMilkDrag); 
addEventListener(MouseEvent.MOUSE_UP, stopMilkDrag); 
addEventListener(Event.ENTER_FRAME, dragMilk); 

//Egg Event listeners: 
addEventListener(MouseEvent.MOUSE_DOWN, startEggDrag); 
addEventListener(MouseEvent.MOUSE_UP, stopEggDrag); 
addEventListener(Event.ENTER_FRAME, dragEgg); 

//Milk Functions:; 
function startMilkDrag(event:MouseEvent):void 
{ 
    milkClickOffset = new Point(event.localX,event.localY); 
} 
function stopMilkDrag(event:MouseEvent):void 
{ 
    milkClickOffset = null; 
} 
function dragMilk(event:Event):void 
{ 
    if (milkClickOffset != null) 
    {// must be dragging 
     milk.x = mouseX - milkClickOffset.x; 
     milk.y = mouseY - milkClickOffset.y; 
    } 
} 

//Egg Functions: 
function startEggDrag(event:MouseEvent):void 
{ 
    eggClickOffset = new Point(event.localX,event.localY); 
} 
function stopEggDrag(event:MouseEvent):void 
{ 
    eggClickOffset = null; 
} 
function dragEgg(event:Event):void 
{ 
    if (eggClickOffset != null) 
    {// must be dragging 
     egg.x = mouseX - eggClickOffset.x; 
     egg.y = mouseY - eggClickOffset.y; 
    } 
} 

回答

2

因为找你添加事件监听到舞台不是影片剪辑

//Milk Event listeners:; 
milk.mouseChildren = false; 
milk.addEventListener(MouseEvent.MOUSE_DOWN, startMilkDrag); 
milk.addEventListener(MouseEvent.MOUSE_UP, stopMilkDrag); 
milk.addEventListener(Event.ENTER_FRAME, dragMilk); 

//Egg Event listeners: 
egg.mouseChildren = false; 
egg.addEventListener(MouseEvent.MOUSE_DOWN, startEggDrag); 
egg.addEventListener(MouseEvent.MOUSE_UP, stopEggDrag); 
egg.addEventListener(Event.ENTER_FRAME, dragEgg); 
+0

是,就是这样,非常感谢。 – 2012-03-13 16:14:15

相关问题