2012-05-10 18 views
-1

私はインタラクションについてのプロジェクトを行っています。画面上にマウスがありますので、私はAdobe Flash ProとAction Script2を使ってやりたいと思います。 ここでは、タスク: - 単純なアニメーション(例:画面上で上から下に向かって上がったり上にジャンプしたりするスパイダーがいっぱい) - マウスが動くとアニメーションは逆転します画面の上部に戻って来た場所から)。 - 60秒後にマウスが動かなければ、マウスが画面上を再び動くまでアニメーションが再び発生します(これらのスパイダーアニメーションは再び発生します)。アクションスクリプト2提案

アニメーションスパイダー「ムービークリップ」(スパイダーアニメーションがダウンしています)を作成しました 1アニメーションを逆転させるために書き込むスクリプトは何ですか? 2マウスを移動したか、移動していないとAdobeに伝えることができますか?

ところで、私はアクションスクリプト2.0で非常に初心者です 私は何か提案と助けを感謝します*私もアクションスクリプト3でそれを行うにはいいです ありがとう。

+7

Actionscript 2は古いものです。あなたはActionscript 3を使いたくないと肯定的ですか? – evilpenguin

+1

FlexはActionScript 3で構築されていてバージョン2以降であるため、Adobe Flex Tagは削除されました。ActionScript 2バージョンのFlexは、サーバー側の製品であり、相当額(CPUあたり10Kドル以上)を要しました。また、 Flash Proの内部でFlexを使用することは非常に困難です。あなたが初心者ならば、ちょうど学びます。 ActionScript 2はなぜ6年前に廃止されたのでしょうか? – JeffryHouser

+0

さて、なぜ私はなぜアクションスクリプト3を使用してそれを行うことを習得したいと思いますが、アクションスクリプト3でそれを行うことができますアクションスクリプト2で働いたので、 –

答えて

0

Oh my。 AS2 :)

最初にOK 2つの異なるアニメーションを作成する方が簡単だと思います。スパイダーが歩くためのもの。もう一方は歩く。 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.   
} 

これは、マウスの移動のための非常に基本的なハンドラです。 これはあなたを少し助けてくれることを願っています。これは完全な解決策ではありません。それは箱からはうまくいかないでしょう。

最後に1つのこと。あなたがAS2を初めてお使いの場合は、as3にショットを与えることをお勧めします。それは始めるのがより難しいですが、as2のAS3問題を助けてくれる人がたくさんいます。

0

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

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

1. MovieClipをステージに置き、インスタンス名を 'spiders'にします。このムービークリップは、最初のフレームにこのコードを入れ

2.insideは

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(それはアニメーションをrevesing処理します)。(最初のフレームで)メインのタイムライン上でこのコードを配置:

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); 
} 

コードの一枚で、マウス、タイマーやアニメーションを処理することが可能であろう、しかしそれは今構築の道は OOPの一種でありますある時点で適切にビルドすることに決めた場合、このコードを別のクラスとして「書き直す」ことは非常に簡単です。