好吧,只要您的鼠标实际上在物品上或它的一个孩子身上,那么mouseOver和RollOver以及它们各自的输出效果都很好。我的问题是,我可能有另一个UI组件“之间”我的鼠标和我想要处理鼠标/滚动(可能是一个按钮是在画布的顶部,但不是画布的孩子)的项目。鼠标仍然在组件上,还有其他的东西在同一时间结束。我需要一个真正的mouseOver
任何提示或帮助如何处理?如果我不够清楚,请告诉我。
下面是一个简单的代码示例,详细说明我的问题复制/粘贴到您的Flex/Flash Builder中,你会明白我的意思: 编辑,我只是做这个比较复杂和真实的我的实际问题,拖慢慢的,如果进一步移动鼠标比它有点打破单个帧按钮,但也只是在这个简化版本
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="500" height="268"
creationComplete="ccInit()">
<mx:Script>
<![CDATA[
private var btnStartX:Number = 10;
private var btnStartY:Number = 218;
private var msStartX:Number = 0;
private var msStartY:Number = 0;
private function ccInit():void{
myCanv.addEventListener(MouseEvent.ROLL_OVER,handleRollOver);
mybutton.addEventListener(MouseEvent.MOUSE_DOWN,startDragOp);
}
private function handleRollOver(evt:MouseEvent):void{
myCanv.setStyle("backgroundAlpha",1);
myCanv.addEventListener(MouseEvent.ROLL_OUT,handleRollOut);
mybutton.mouseEnabled = false;
mybutton.focusEnabled = false;
mybutton.mouseFocusEnabled = false;
mybutton.mouseChildren = false;
}
private function handleRollOut(evt:MouseEvent):void{
myCanv.setStyle("backgroundAlpha",0);
myCanv.removeEventListener(MouseEvent.ROLL_OUT,handleRollOut);
mybutton.mouseEnabled = true;
mybutton.focusEnabled = true;
mybutton.mouseFocusEnabled = true;
mybutton.mouseChildren = true;
}
private function startDragOp(evt:MouseEvent):void{
btnStartX = mybutton.x;
btnStartY = mybutton.y;
msStartX = stage.mouseX;
msStartY = stage.mouseY;
mybutton.addEventListener(MouseEvent.MOUSE_MOVE,moveWithMouse);
mybutton.addEventListener(MouseEvent.MOUSE_UP,endDragOp);
}
private function moveWithMouse(evt:MouseEvent):void{
mybutton.x = btnStartX + stage.mouseX - msStartX;
mybutton.y = btnStartY + stage.mouseY - msStartY;
}
private function endDragOp(evt:MouseEvent):void{
mybutton.x = 10;
mybutton.y = 218;
mybutton.removeEventListener(MouseEvent.MOUSE_MOVE,moveWithMouse);
mybutton.removeEventListener(MouseEvent.MOUSE_UP,endDragOp);
}
]]>
</mx:Script>
<mx:Canvas id="myCanv" x="10" y="10" width="480" height="200" borderStyle="solid" borderColor="#000000" backgroundColor="#FFFFFF" backgroundAlpha="0">
</mx:Canvas>
<mx:Button id="mybutton" x="10" y="218" label="Drag me over above canvas" width="326" height="36"/>
</mx:Application>
我前面的例子太简单了,这新的更准确的我遇到的问题。 – invertedSpear 2010-05-21 15:58:25