2010-11-06 29 views
0

我有几个阶段的事件处理程序,以便能够在舞台上的一些动态生成moviecilps鼠标悬停那然后改变自己的α,表示鼠标移动到特定的MC ...相当微不足道的(mcOver处理程序)。另外,我也想知道MC被点击什么,所以我更新公共变量(公共变种activemc:值)当鼠标移动到它与动态影片剪辑的ID(使用则hitTest来检查,这就是为什么事件监听加入到阶段,而不是在MC),其在mcClicked处理程序检查:AS3的MouseEvent.MOUSE_MOVE事件MouseEvent.CLICK电话后停止响应

这是在构造:

//stage.addEventListener(MouseEvent.MOUSE_DOWN, startDrawing); 
    //stage.addEventListener(MouseEvent.MOUSE_UP, stopDrawing); 
    stage.addEventListener(MouseEvent.MOUSE_MOVE, mcOver); 
    //stage.addEventListener(Event.MOUSE_LEAVE, outlinesHide); 
    stage.addEventListener(MouseEvent.CLICK, mcClicked); 

然而,鼠标悬停行为(阿尔法0时结束,阿尔法1时)只要我点击舞台上的任何动画片段就停止工作,并且mcClicked ID检查(下面)完全停止工作。我不知道这是否是重点做到:

private function mcClicked(event:MouseEvent):void { 

myTextField.text = String(activemc); // activemc is a public var:Number with the movieclip //ID 

} 

然后我尝试添加再次舞台MOUSE_MOVE事件处理程序,这得到鼠标悬停再次但只有1次点击的工作,在这之后停止再次:

private function mcClicked(event:MouseEvent):void { 

myTextField.text = String(activemc); // activemc is a public var:Number with the movieclip //ID 


stage.addEventListener(MouseEvent.MOUSE_MOVE, mcOver); 
} 

我会非常感激,如果有人能帮助理清这个真烦人的行为!谢谢!

回答

0

只需尝试一下,而不是alpha 0,在鼠标悬停上尝试alpha = 0.1或更大。

另一种尝试值得给,停止的MouseEvent的传播中的“mcClicked” - 这是检查其他地方的鼠标移动正在从舞台上删除。

+0

就在我进一步麻烦你之前,我想我可能已经找到了问题。我会尽快给你更新。 编辑:我解决了它 – dfx 2010-11-07 01:33:29

+0

编辑:我解决了它 - 这是的myTextField.text正与activemc价值,而且在mcOver事件处理程序更新,以检查阶段MCS总数的情况下。因此,如果我使用MC3,那么鼠标悬停行为只适用于动画片段1和2.这仅仅是懒惰和更新共享textField的情况!感谢您的帮助。 – dfx 2010-11-07 01:39:13