2012-05-10 46 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的,如果在某个时候您决定正确构建它,将这个代码'重写'为单独的类将非常容易。