1

我正在尝试让对象在 as3 中跟随鼠标。我的愿望是,当我翻过一个movieclip(btn1) 时,我希望使对象跟随鼠标(my_object) 的函数停止,直到我滚出它为止。这是脚本:

btn1.addEventListener(MouseEvent.ROLL_OVER, JD);

function JD(event:MouseEvent):void{
stage.removeEventListener(Event.ENTER_FRAME, follow_me);

}

btn1.addEventListener(MouseEvent.ROLL_OUT, kk);

function kk(event:MouseEvent):void{
play();
}

stage.addEventListener(Event.ENTER_FRAME,follow_me)
function follow_me(event:Event):void {

var dx:int = bracketL.x - mouseX;
var dy:int = bracketL.y - mouseY;
 my_object.x -= dx / 9+5;
 my_object.y -= dy /9;
}

即使我翻过 btn1,my_object 也没有停止,它仍然跟随鼠标!!我应该怎么办 ?

4

1 回答 1

0

使用不同的方法来获得更流畅的动画,您可以创建一个输入帧处理程序来检查paused状态变量。

每一帧,您的对象都会跟随鼠标光标进行动画处理;但是,如果鼠标悬停在您的按钮上,则该对象将暂停跟踪鼠标。

鼠标跟随

代码:

import flash.events.Event;
import flash.events.MouseEvent;

var paused:Boolean = false;

addEventListener(Event.ENTER_FRAME, frameHandler);
button.addEventListener(MouseEvent.ROLL_OVER, buttonOverHandler);
button.addEventListener(MouseEvent.ROLL_OUT, buttonOutHandler);

function buttonOverHandler(event:MouseEvent):void
{
    paused = true;
}

function buttonOutHandler(event:MouseEvent):void
{
    paused = false;
}

function frameHandler(event:Event):void
{
    if (!paused)
    {
        object.x -= (object.x - mouseX) * 0.1;
        object.y -= (object.y - mouseY) * 0.1;
    }
}
于 2013-06-23T23:53:18.960 回答