我有一个横幅,上面有一个大的不可见的按钮,覆盖着舞台,在它下面我有电影剪辑,必须响应鼠标事件。但是我无法通过隐形按钮。我只得到按钮事件,不能与下面的影片剪辑进行交互。下面是简单的代码:
invisibleBtn.addEventListener(MouseEvent.CLICK, onTopClick);
bottomMc.addEventListener(MouseEvent.MOUSE_OVER, onBottomOver);
function onTopClick(e:MouseEvent):void{
trace("top - click");
}
function onBottomOver(e:MouseEvent):void{
trace("bottom - over");
}
我从来没有得到过bottomMc MouseEvent…任何想法吗?谢谢!
你唯一能做的就是禁用invisibtn,并把click事件放在影片剪辑上,而不是按钮。
所以,它应该是这样的。
invisibleBtn.mouseEnable=false;
invisibleBtn.mouseChildren =false;
bottomMc.addEventListener(MouseEvent.CLICK, onTopClick);
bottomMc.addEventListener(MouseEvent.MOUSE_OVER, onBottomOver);
function onTopClick(e:MouseEvent):void{
trace("top - click");
}
function onBottomOver(e:MouseEvent):void{
trace("bottom - over");
}
那么,它将为movieclip取事件
你有一个主按钮,点击将打开新页面,同时你希望用户与其他对象进行交互?重新考虑方法。
你有两个解决方案:
1。
仅在没有用户交互可用时显示invisibleBtn
。2。或者使用这个函数:
getObjectsUnderPoint ( new Point ( stage.mouseX, stage.mouseY ) );
将这行放在EnterFrame句柄中,然后你将获得所有对象作为数组,在那里你可以检查对象的名称,并决定现在你是onBottomOver
或onBottomOut
,因为它将一直在活动的invislebtn上
建议使用单个按钮…当点击保持跟踪,如果影片剪辑是可见的…如果是,则执行所需的任何操作,就好像影片剪辑也被点击了
检查底部mc是否在前面
或者试试这个:
this.setChildIndex(bottomMc,this.numChildren-1);