Actionscript 3 闪光中的MouseEvent
我正在尝试在flash应用程序中制作自己的按钮。下面是一些代码:Actionscript 3 闪光中的MouseEvent,actionscript-3,flash,apache-flex,Actionscript 3,Flash,Apache Flex,我正在尝试在flash应用程序中制作自己的按钮。下面是一些代码: addEventListener(MouseEvent.MOUSE_OUT, Out); addEventListener(MouseEvent.MOUSE_OVER, Over); ... private function Over(event:MouseEvent):void { addChild(overImage); } private function Out(event:MouseEvent):void
addEventListener(MouseEvent.MOUSE_OUT, Out);
addEventListener(MouseEvent.MOUSE_OVER, Over);
...
private function Over(event:MouseEvent):void
{
addChild(overImage);
}
private function Out(event:MouseEvent):void
{
removeChild(overImage);
}
当鼠标位于此按钮上方时,overImage将闪烁。看起来
Over
和Out
正在调用每个帧。我做错了什么?如果鼠标位于将出现overImage
的点上,则该子对象将在自身上引发mouse\u OVER
事件,从而在其父对象上引发mouse\u OUT
事件。父级鼠标出
将从显示列表中删除overImage
,这将导致再次将鼠标移到父级上,再次启动循环并使overImage
闪烁。如果鼠标位于将出现overImage
的位置,然后,该子对象将在其自身上引发一个MOUSE\u OVER
事件,从而在其父对象上引发一个MOUSE\u OUT
事件。父级鼠标出
将从显示列表中删除overImage
,这将导致再次将鼠标移到父级上,再次启动循环并使overImage
闪烁。因为您用Flex标记了它;为什么不使用一个
鼠标移动时,MouseOver事件将持续触发。在调用addChild之前,我将执行一项检查,以查看overImage是否已设置为父级:
private function Over(event:MouseEvent):void
{
if(!overImage.parent){
addChild(overImage);
}
}
private function Out(event:MouseEvent):void
{
if(overImage.parent){
removeChild(overImage);
}
}
我怀疑这会阻止“眨眼” 因为您用Flex标记了它;为什么不使用一个
鼠标移动时,MouseOver事件将持续触发。在调用addChild之前,我将执行一项检查,以查看overImage是否已设置为父级:
private function Over(event:MouseEvent):void
{
if(!overImage.parent){
addChild(overImage);
}
}
private function Out(event:MouseEvent):void
{
if(overImage.parent){
removeChild(overImage);
}
}
我怀疑这会阻止“眨眼” > P> >考虑使用<代码> MouthEvest.RoopyOver 和<代码> MouthEngult.LoopyOuts事件。他们忽略了组件的子组件。没有任何额外的检查和丑陋的把戏
顺便说一下,按钮支持皮肤和状态,所以你可以把你的图像包含到“Over”状态。 < P>只考虑使用<代码>鼠标事件。RoopyOver 和<代码>鼠标事件。他们忽略了组件的子组件。没有任何额外的检查和丑陋的把戏
顺便说一句,按钮支持外观和状态,因此您可以将图像包含到“结束”状态。就像另一个人说的那样,使用翻滚和翻滚,或者设置按钮。mouseChildren=false
它之所以闪烁,是因为鼠标移过和鼠标移出会对该按钮的每个子项产生影响。所以,如果你有文字,或者bg图像/颜色,或者光泽,或者里面有其他元素,每次你翻过这些部分,它就会开火
因此,当您添加“overImage”时,它会出现在鼠标下方,并触发另一个mouseOut和mouseOver。同样,只需使用翻滚和翻滚,或者设置mouseChildren=false就像另一个人说的那样,使用翻滚和翻滚,或者设置按钮。mouseChildren=false
它之所以闪烁,是因为鼠标移过和鼠标移出会对该按钮的每个子项产生影响。所以,如果你有文字,或者bg图像/颜色,或者光泽,或者里面有其他元素,每次你翻过这些部分,它就会开火
因此,当您添加“overImage”时,它会出现在鼠标下方,并触发另一个mouseOut和mouseOver。同样,只需使用翻滚和翻滚,或设置mouseChildren=false,这不是halp,但根据你的建议,我解决了我的问题。这不是halp,但根据你的建议,我解决了我的问题。