2012-05-10 72 views
-1

我正在做一個關於交互的項目,鼠標在屏幕上,因此,我想通過使用Adobe Flash Pro和Action Script2來做到這一點。 這裏是任務: - 一個簡單的動畫(例如:蜘蛛在屏幕上從上到下走動/跳躍) - 一旦鼠標移動,動畫將反轉(所有蜘蛛動畫將反轉回來並隱藏回到從來的地方屏幕的頂部)。 - 如果鼠標在60秒後沒有移動,動畫將再次發生,直到鼠標再次移動到屏幕上(這些蜘蛛動畫將再次發生)。動作腳本2建議

我創建了一個動畫蜘蛛「電影剪輯」(蜘蛛動畫下去) 1-我應該寫什麼腳本使動畫反轉? 2-我怎麼能告訴Adobe我的鼠標移動了,或者它沒有移動,所以蜘蛛動畫會發生還是反轉?

順便說一下,我在動作腳本2.0 非常初學者我明白任何建議和幫助*是爲我好,以在動作腳本3太 感謝做到這一點。

+7

Actionscript 2是一種古老的..你是積極的你不想使用Actionscript 3? – evilpenguin

+1

我刪除了Adobe Flex標記,因爲Flex已經在ActionScript 3中構建,並且已經從版本2開始.Flex 2版本的Flex是一個服務器端產品,其成本很高(每個CPU> 10K美元)。也;在Flash Pro中使用Flex非常困難。如果你是初學者,只是在學習;你爲什麼要用ActionSCript 2,6年前的所有意圖和目的已經過時了? – JeffryHouser

+0

好吧,因爲我與動作腳本2一起工作,爲什麼我問,想要學習使用動作腳本3來做到這一點,但如何在動作腳本3中做到這一點? –

回答

0

哦,我的。 AS2 :)

確定首先我認爲如果您創建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.   
} 

這對於鼠標移動一個非常基本的處理程序。 希望這會對你有所幫助。這不是一個完整的解決方案。它不會開箱即用。

最後一件事。如果你是AS2的新手,我會建議給as3一個鏡頭。開始時比較困難,但是有更多的人願意幫助解決AS3問題,然後用as2解決問題。

0

既然你說你已經準備好使用AS3,這裏就是解決方案。

我假設你有一個單獨的影片剪輯,其中包含放置在主時間軸/舞臺上的蜘蛛動畫。

1.將您的MovieClip放置在舞臺上,併爲其指定實例名稱「spiders」。

2.inside此​​MovieClip的,第一框架上把這個代碼(它會處理revesing動畫)

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

這將有可能處理鼠標,定時器和動畫爲一體的代碼,但是它的建造方法,現在是一種 OOP的,如果在某個時候您決定正確構建它,將這個代碼'重寫'爲單獨的類將非常容易。