2015-04-01 120 views
1

我有两个事件;鼠标上下。当左键按下时,我会得到鼠标的初始位置。然后我打算在按钮释放后获取鼠标的最后位置。所以如果有横向移动我可以很容易识别。然而这是有问题的。由于我将侦听器添加到影片剪辑,因此它会在该影片剪辑的范围内获取鼠标x。我的意思是如果你释放按钮以外的电影剪辑它不起作用,因为事件附加到它。这里有什么转机吗?在事件中获取鼠标位置

m_c.addEventListener(MouseEvent.MOUSE_DOWN, StartPoint); 
m_c.addEventListener(MouseEvent.MOUSE_UP, EndPoint); 

function StartPoint(event:MouseEvent):void 
{ 
    initX = stage.mouseX; 
} 

function EndPoint(event:MouseEvent):void 
{ 
    lastX = stage.mouseX; 
    trace("drop ", lastX); 
    if(lastX < initX) 
    { 
     trace("goes left"); 
     . 
     . 
     . 
    } 
} 
+2

我不知道你正在尝试做的,但我认为你应该把事件听众附加到你的舞台上而不是你的动画片段。 – akmozo 2015-04-01 09:20:29

+0

我同意akmozo。使用'stage.addEventListener(MouseEvent.MOUSE_UP,EndPoint);' – subdan 2015-04-01 10:13:06

+0

不够公平。但我需要这样的事件;用户点击影片剪辑,保持它,向右或向左移动并释放(让我们说,鼠标驱动刷卡)。 – coner 2015-04-01 10:17:06

回答

3

你需要的addListener到阶段,优选在MOUSE_DOWN

的听众
function StartPoint(event: MouseEvent) : void { 
    stage.addEventListener(MouseEvent.MOUSE_UP, EndPoint); 

    // another code 
}