转载请注明出处-中国设计秀-cnwebshow.com
三、移动次数法
前两个方法都是利用路径的长度来进行判断的,而这个方法就像我们出去旅行,计算到达目的地要多长时间一样,把总路径长度按照移动的步长计算出总共要用移动多少次,然后按照移动次数来控制影片的运动。
先来看看源代码吧:
var mouseListener:Object = new Object(); var totalLength:Number = 0; var speed:Number = 3; var count:Number = 0; var spare:Number = 0; var position:Number = 0; mouseListener.onMouseDown = function() { _root.totalLength = people._x-_root._xmouse; _root.count = Math.abs(Math.floor(_root.totalLength/_root.speed)); _root.spare = _root.totalLength%_root.speed; _root.onEnterFrame = function() { if (_root.count != 0) { //判断方向 if (_root.totalLength>0) { obj._x += _root.speed; } else { obj._x -= _root.speed; } _root.count--; } else { if(_root.totalLength<0){ obj._x -= _root.spare; }else{ obj._x+=_root.spare; } _root.spare = 0; _root.totalLength = 0; delete _root.onEnterFrame; } }; }; Mouse.addListener(mouseListener); |
以上代码就是一个按次数移动的方法。其中的_root.spare = _root.totalLength%_root.speed;可能会不理解,其实这是求取不足一次移动的距离,也是剩余的距离不够作为一次移动步长了,最后只要加上这段距离就能到达目的地了。
如果哪位高手还什么更好的解决方法不妨拿出来共享一下,让大家学习学习。不懂的朋友或者认为我上面的代码有误的朋友(上面的代码都没有在Flash中运行过,只是凭空写出来的)可以联系我跟我讨论,本人先在此谢谢大家了。希望在时间充裕的时候和大家探讨更深入的问题。