我遇到了MOUSE_OUT被调用的问题,虽然它不应该被调用。我做的事情很简单:当我在舞台上移动鼠标时,会显示两个图像,而当鼠标离开舞台时,它们会隐藏起来。
问题是,每当鼠标点击舞台上任何电影剪辑的边界时,MOUSE_OUT函数都会被调用,从而隐藏两个图像。这意味着每当我移动鼠标时
我的代码(只显示相关部分):
public class Slider extends MovieClip {
var img1:Img1 = new Img1;
var img2:Img2 = new Img2;
var img1_hover:Img1_hover = new Img1_hover;
var img2_hover:Img2_hover = new Img2_hover;
public function Slider() {
img1.alpha = 0;
img2.alpha = 0;
stage.addEventListener(MouseEvent.MOUSE_MOVE, showArrows);
}
function showArrows(e:MouseEvent) {
img1.alpha = 1;
img2.alpha = 1;
stage.addEventListener(MouseEvent.MOUSE_OUT, hideArrows);
}
function hideArrows(e:MouseEvent) {
img1.alpha = 0;
img2.alpha = 0;
}
}Flash不会抛出错误。我使用了一个单独的.as文件(只有一个),并且在.fla的动作面板中没有代码。在有根的地方,我也尝试了这个。,stage.addEventListener。除了舞台什么都没有。
发布于 2012-04-10 08:09:15
您希望使用MOUSE_LEAVE事件而不是http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/Stage.html#event:mouseLeave
或者,在hideArrows函数中,可以检查事件的目标:
function hideArrows(e:MouseEvent) {
If(e.target == stage){
img1.alpha = 0;
img2.alpha = 0;
}
}https://stackoverflow.com/questions/10081124
复制相似问题