2012-11-23 120 views

回答

1

有几种方法可以做到这一点。最简单的方法是使用Sprite.startDrag()方法。

the Adobe docs,这是一个例子:

import flash.display.Sprite; 
import flash.events.MouseEvent; 

var circle:Sprite = new Sprite(); 
circle.graphics.beginFill(0xFFCC00); 
circle.graphics.drawCircle(0, 0, 40); 

var target1:Sprite = new Sprite(); 
target1.graphics.beginFill(0xCCFF00); 
target1.graphics.drawRect(0, 0, 100, 100); 
target1.name = "target1"; 

var target2:Sprite = new Sprite(); 
target2.graphics.beginFill(0xCCFF00); 
target2.graphics.drawRect(0, 200, 100, 100); 
target2.name = "target2"; 

addChild(target1); 
addChild(target2); 
addChild(circle); 

circle.addEventListener(MouseEvent.MOUSE_DOWN, mouseDown) 

function mouseDown(event:MouseEvent):void { 
    circle.startDrag(); 
} 
circle.addEventListener(MouseEvent.MOUSE_UP, mouseReleased); 

function mouseReleased(event:MouseEvent):void { 
    circle.stopDrag(); 
    trace(circle.dropTarget.name); 
} 

修改为你自己的需求;您可以在鼠标释放时检查对象是否为指定区域。

+0

这是有帮助的,thanx。 –

+0

如果您认为它是正确的,请接受答案,让人们知道您的问题已解决。 –