我是AS3/Flash和堆栈溢出的新手,并且尝试过浏览这个问题的不同线程。
我的问题是,当我在其中一个按钮上滚动过快时,该按钮将转到"Click“状态。我有一个测试器来测试“命中!”每当出现故障时,测试人员都不会显示“命中”行,因此我知道它实际上并没有注册用户输入单击。
有趣的是,只有当我从按钮的底部或顶部移动到另一边的垂直时,这个问题才会发生。更快的FPS似乎能将效果降到最低,但它仍然存在。我试图摆脱我的命中区域层,认为这是问题的罪魁祸首,但即使在那时,它什么也没做。
我会发布的.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;
};发布于 2013-05-10 20:28:56
好了,明白了。这就是正在发生的事情
您对推出的计算产生了一个问题。
function betterOut(evt:MouseEvent):void{
**better_mc.gotoAndPlay(27- (better_mc.currentFrame-10));**
} 这个表达式有时会返回第28帧,它位于框架27的“stop()”前面,因此它继续播放整个点击动画。
27- (更好)
尝试简单的解决方案,在点击动画开始之前添加'stop()‘,在本例中是frame 31。
看看这能不能解决你的问题。
发布于 2013-05-09 11:24:31
不能打开您的fla,因为我有CS5,所以在这方面没有多少帮助
不知道为什么需要点击和鼠标向下的事件,除了gotoAndPlay(标签名)部分之外,代码看起来还不错,因为不知道这里是如何添加动画的。
只用于查询的最后一部分
(而且,better_mc.Hit._visible = false;似乎不起作用)
对于AS3,使用的是“可视”属性,而不是“_visible”,因此,
better_mc.Hit.**visible** = false;https://stackoverflow.com/questions/16459625
复制相似问题