1

as3でオブジェクトをマウスに追従させようとしています。私の願いは、ムービークリップ(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 に答える