按钮上的快速rollOver导致另一个标签rollOut(MovieClip按钮)

时间:2013-05-09 10:28:43

标签: actionscript-3 label rollover visual-glitch

我是AS3 / Flash和stackoverflow的新手,并尝试使用此问题浏览不同的主题。

我的问题是,当我在其中一个按钮上翻滚太快时,按钮将翻转到“点击”状态。我有一个调试行“hit!”的测试人员,每当出现故障时,测试人员都不显示“命中”行,所以我知道它实际上没有注册用户输入的点击。

有趣的是,只有当我从按钮的底部或顶部移动到另一侧垂直时,问题才会发生。更快的FPS似乎确实最小化了效果,但它仍然存在。我试图摆脱我的命中区域层,认为这是问题的罪魁祸首,但即使这样它也没有做任何事情。

我会发布.fla以防万一有人能解决这个问题,会真的很感激它,因为它让我疯狂。

https://dl.dropboxusercontent.com/u/18672917/Main_Btn_7halp6.fla

这是我用过的代码,以防有人想要从可能的编码错误中找出答案。 (另外,better_mc.Hit._visible = false;似乎不起作用)

import flash.events.MouseEvent;

stop();

better_mc.addEventListener(MouseEvent.ROLL_OVER, betterOver);
better_mc.addEventListener(MouseEvent.ROLL_OUT, betterOut);
better_mc.addEventListener(MouseEvent.CLICK, betterClick);

function betterOver(evt:MouseEvent):void{
    better_mc.gotoAndPlay("Over");
    }

function betterOut(evt:MouseEvent):void{
    better_mc.gotoAndPlay(27- (better_mc.currentFrame-10));
    }   

function betterClick(event:MouseEvent):void {
better_mc.gotoAndPlay("Click");
}



better_mc.hitArea = better_mc.Hit;
better_mc.addEventListener(MouseEvent.MOUSE_DOWN, Hitbox);
function Hitbox (event:MouseEvent){
trace("hit! "+this.name);

better_mc.Hit._visible = false;
};

2 个答案:

答案 0 :(得分:0)

无法打开你的fla,因为我有CS5,因此没有多少帮助

不确定为什么你需要click和mousedown事件,除了gotoAndPlay(labelname)部分之外,代码看起来很好,因为不知道动画是如何在这里添加的

仅用于查询的最后一部分

  

(另外,better_mc.Hit._visible = false;似乎不起作用)

对于AS3,使用属性'visible'而不是'_visible',因此它将是

better_mc.Hit.**visible** = false;

答案 1 :(得分:0)

好的,明白了。这就是正在发生的事情

您对推出的计算正在产生问题

function betterOut(evt:MouseEvent):void{
    **better_mc.gotoAndPlay(27- (better_mc.currentFrame-10));**
    } 

此表达式有时会返回第28帧,它位于第27帧的“stop()”之前,因此它继续播放整个点击动画。

  

27-(better_mc.currentFrame-10)

尝试在点击动画开始之前添加'stop()'的简单解决方案,例如在这种情况下第31帧。

看看这是否可以解决您的问题。