-1

私は、画面上でマウスを操作することに関するプロジェクトを行っています。したがって、AdobeFlashProとActionScript2を使用してプロジェクトを実行したいと思います。タスクは次のとおりです。-単純なアニメーション(たとえば、画面上を上から下に歩いたりジャンプしたりするスパイダーでいっぱい)-マウスを動かすと、アニメーションが反転します(すべてのスパイダーアニメーションが反転して、に隠れます。来た場所から画面の上部)。-60秒経過してもマウスが動かない場合は、画面上でマウスが再び動くまでアニメーションが再び発生します(これらのスパイダーアニメーションが再び発生します)。

アニメーションスパイダー「ムービークリップ」(スパイダーアニメーションがダウン)を作成しました1-アニメーションを反転させるためにどのスクリプトを作成する必要がありますか?2-マウスが動いているか動いていないかをアドビに伝えるにはどうすればよいですか?スパイダーアニメーションが発生するか、逆になりますか?

ちなみに、私はアクションスクリプト2.0の非常に初心者です。提案やヘルプに感謝します。*アクションスクリプト3でも問題ありません。ありがとうございます。

4

2 に答える 2

0

あら。AS2:)

まず最初に、2 つの異なるアニメーションを作成した方が簡単だと思います。スパイダーが降りるための 1 つ。もう一人は上へ。MovieClip を逆にすることは可能ですが、初心者の場合は基本を守ってください。

ここで3つの考えが必要です。

1) スパイダー クリップ。行ったり来たり。2) 間隔 (AS3 のタイマー)

var interval:Number = setInterval(spidersComeOut, 60 * 1000);

3) マウス移動リスナー

root.onMouseMove = function() 
{
    //swap your spider clips
    //move the spider up again
    //reset the interval with clearInterval(interval) and restart it again.        
}

これは、マウス移動の非常に基本的なハンドラーです。これが少し役立つことを願っています。これは完全な解決策ではありません。そのままでは機能しません。

最後にひとこと。AS2 を初めて使用する場合は、as3 を試してみることをお勧めします。始めるのは難しいですが、as2 よりも AS3 の問題を喜んで手伝ってくれる人が世の中にはたくさんいます。

于 2012-05-13T19:29:48.810 に答える
0

AS3を使用する準備ができていると言ったので、ここに解決策があります。

メインのタイムライン/ステージに配置するクモのアニメーションを含む別のムービー クリップがあるとします。

1.ムービークリップをステージに配置し、「スパイダー」のインスタンス名を付けます。

2. この MovieClip の最初のフレームにこのコードを配置します (アニメーションの反転を処理します)。

import flash.events.Event;

stop();

var _dir:int = 1;

addEventListener(Event.ENTER_FRAME, onEF);
function onEF(e:Event):void
{
    getNextAnimationFrame();
}

function getNextAnimationFrame():void
{
    var frameNum:int = currentFrame + _dir;
    if (frameNum < 1 || frameNum > totalFrames) 
    {
         removeEventListener(Event.ENTER_FRAME, onEF);
    }
    frameNum = Math.max(1, Math.min(totalFrames,frameNum));

    gotoAndStop(frameNum);
}

function changeDirection($dir:int):void
{
    _dir = $dir;
    removeEventListener(Event.ENTER_FRAME, onEF);
    addEventListener(Event.ENTER_FRAME, onEF);
}

3. メイン タイムライン (最初のフレーム) に次のコードを配置します。

import flash.utils.Timer;
import flash.events.TimerEvent;
import flash.events.MouseEvent;

var timer:Timer = new Timer(60 * 1000, 1);
timer.start();
timer.addEventListener(TimerEvent.TIMER_COMPLETE, onTime);

stage.addEventListener(MouseEvent.MOUSE_MOVE, onMove);

function onTime(e:TimerEvent):void
{
    trace("it's time");
    spiders.changeDirection(1);
}

function onMove(e:MouseEvent):void
{
    timer.reset();
    timer.start();
    spiders.changeDirection(-1);
}

マウス、タイマー、アニメーションを 1 つのコードで処理することは可能ですが、現在のビルド方法は OOP のようなものです。ある時点で適切にビルドすることにした場合、このコードを次のように「書き直す」のは非常に簡単です。別々のクラス。

于 2012-05-14T09:19:28.047 に答える