AS3鼠标悬停在前面的按钮上

时间:2016-11-06 12:50:32

标签: actionscript-3 flash-cs6 tween

我正在使用此代码为我正在设计的网站的联系页面上的按钮设置动画。

//Contact Buttons
//Email
ContactPage.Email.addEventListener(MouseEvent.MOUSE_OVER,bounceEmailover);

function bounceEmailover(event:MouseEvent):void
{
    var scaleTween:Tween=new Tween(event.target,"scaleX",Elastic.easeOut,1,1.5,1,true);
    var scale2Tween:Tween=new Tween(event.target,"scaleY",Elastic.easeOut,1,1.5,1,true);
}

ContactPage.Email.addEventListener(MouseEvent.MOUSE_OUT,bounceEmailout);

function bounceEmailout(event:MouseEvent):void
{
    var scaleTween:Tween=new Tween(event.target,"scaleX",Elastic.easeOut,1.5,1,1,true);
    var scale2Tween:Tween=new Tween(event.target,"scaleY",Elastic.easeOut,1.5,1,1,true);
}

当我鼠标悬停时,有4个按钮在页面上排列相同的代码,我想弹出并重叠。有没有办法将我已经将鼠标悬停在前面,而不是留在旁边的按钮后面?

Here's an image of the buttons。 Wordpress按钮已被鼠标悬停,但它仍然在Facebook按钮后面。

2 个答案:

答案 0 :(得分:1)

只需获取该按钮的实例,然后将其从容器列表中删除,然后将其添加回列表顶部

function bounceEmailover(event:MouseEvent):void
{
    var scaleTween:Tween=new Tween(event.target,"scaleX",Elastic.easeOut,1,1.5,1,true);
    var scale2Tween:Tween=new Tween(event.target,"scaleY",Elastic.easeOut,1,1.5,1,true);

    var parent:MovieClip = event.target.parent as MovieClip;
    var btn:MovieClip = event.target as MovieClip;
    parent.addChild(btn);
}

修改:感谢@NealDavis,从上方删除了parent.addChild(btn);

  这里不需要

removeChild。 Callig addChild   已存在的对象不会创建第二个实例,   但只将已经打包的实例移动到z顺序的顶部

确保从正确的位置调用getChildByNameremoveChild以及addChild

答案 1 :(得分:1)

由于所有按钮都嵌入在联系人页面影片剪辑中,因此我可以将此代码添加到“联系人”页面,当我将鼠标悬停时,该页面会将该影片剪辑中的任何按钮添加到前面。工作正常。

for (var fl_ChildIndex:int = 0;
        fl_ChildIndex < this.numChildren;
        fl_ChildIndex++)
{
    this.getChildAt(fl_ChildIndex).addEventListener(MouseEvent.MOUSE_OVER, fContactMObringtofront);
}
function fContactMObringtofront(event:MouseEvent):void
{
    this.addChild(event.currentTarget as DisplayObject);
}