我是 AS3/Flash 和 stackoverflow 的新手,并试图浏览不同的线程来解决这个问题。
我的问题是,当我在其中一个按钮上滚动过快时,该按钮将滚动到“单击”状态。我有一个测试器来调试“命中!”这一行,每当发生故障时,测试器不会显示“命中”行,所以我知道它实际上并没有注册用户输入点击。
有趣的是,这个问题也只发生在我从按钮的底部或顶部垂直移动到另一侧时。更快的 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;
};