y = startY + dist*deltaY;
如下我们的应用: curveTo(25+100*dist,100+100*dist,150-100*dist, 175-50*dist);
在这个公式中startX和startY是开始点的坐标,deltaX和deltaY分别是x和y到开始点和结束点的距离。
Easing, bouncing and other transitions
缓动,弹性和其它运动方式 可能在一开始你就会想我们为什么会不厌其烦的使用变量time和dist,那么现在让我们来看一下他们之间的关系,你就会知道我们为什么要用它。
如上果你所看到的竖轴代表Dist,水平轴代表time.他们之间的关系目前是线性,也是就dist=time.图上的斜线代表动画的速度。在这个例子中动画的速度是恒定的。现在假如我们想做成开始时速度很快到结速时无速度,则我们只需要在在t=0时加大红线的斜率,而在t=1时使红线无斜率就可以了。这实际上就是倒转过的抛物线或是三角正弦,如果想用其它的运动方式我们可以创建不同的dist和time的关系,来得到更有趣的效果,下面是一些创建好的关系,可能对你会有用处:
你可能会对Robert Penner's transition classes感兴趣。原理都是一样的。
将代码合在一起
代码:
//全局变量决定于你的影片宽度 mWidth = 400; //创建影片剪辑和遮罩 counter = -1; createMovieClip(); animInt = setInterval(doAnim, 17); function createMovieClip() { counter++; attachMovie('pic' add (counter % 2), 'pic' add counter, counter); createEmptyMovieClip('mask' add counter, counter + 10000); this['pic' add counter].setMask(this['mask' add counter]); } function doAnim() { var currMC = _root['mask' add counter]; if(animIndex < 15) { var time = animIndex/15; var dist = 0.5*Math.sin(Math.Pi*(time-0.5)) + 0.5;
复制本页网址和标题,发送给你QQ/Msn的好友一起分享
上一篇:flash 8 安装remoting解决方法
下一篇:Flash FAQ(常见问答集)