关于定点移动的解决方案分析_自由灵感工作室_闪吧新社区

来源:百度文库 编辑:神马文学网 时间:2024/04/30 00:25:47
关于定点移动的解决方案分析2007-10-20 14:13:25 / 个人分类:vim专栏 最近由于忙于工作,很少上来发表文章了。不过经验还是要和大家一起分享的。也希望大家能通过看了我写的文章能够得到收获,这才是我写这些文章的目的。好了,废话就留在日后再说。我今天我要讲的是一个定点移动的问题,为什么要说这个呢?其实没别的原因,因为有个同学前几天问过我这个问题,他说不太理解所以我也拿出来跟大家一起讨论和分析。所谓定点移动是指某个物体移动到指定的地点这样一个常规的动作。看似简单的问题但他所涉及的因素还是比较多的(如:总路程、速度、路面光滑程度以及物体内在性质等等)。由于我们是用Flash来实现这种定点移动,在这可视的动画制作工具面前我们就不用考虑那么多了,今天我主要是说说利用鼠标指定地点后影片就从原点移动到指定点这样的一个动画实例。这个实例主要是以AS脚本来实现,虽然是比较简单,但我会以三种不同的实现方法来实现,这三种方法分别是:累积路径法、剩余路径法和移动次数法(这些名字是自己给他取的)。为了节省事件和降低难度,我这里主要是实现水平方向的定点移动,并且是匀速运动。在讲各种方法之前我先讲一下此实例的组成结构。结构非常简单,整个主场景就只有一个名字为obj的影片剪辑对象,当然剩下的工作就是要写脚本来实现。一、累积路径法:顾名思义,就是物体每次移动的距离我们把他累积起来,然后通过对比总路径长度来判断是否已经到达目的地的方法。我们先来看看实现的脚本:var mouseListener:Object=new Object();var totalLength:Number=0;var pileLength:Number=0;var speed:Number=5; //匀速运动,此是定值。mouseListener.onMouseDown=function(){ _root.totalLength=obj._x-_root._xmouse; _root.onEnterFrame=function(){ if(_root.pileLength+_root.speed=_root.speed){ if(_root.totalLength0) { obj._x += _root.speed; } else { obj._x -= _root.speed; } _root.count--; } else { if(_root.totalLength