我是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;
};
答案 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帧。
看看这是否可以解决您的问题。