按照预定轨道旋转的星星 |
| 作者:佚名 来源:闪吧 作者: 龙族酷少 更新:2007-1-13 20:48:43 错误报告 我要投稿 |
研究AS已经有一段时间了,开始遇到了不少困难,但是现在感觉越来越能感受到AS的巨大魅力了,已经深深陷入其中,哈哈…… 有时候一段很短的代码就能实现一些非常好的效果,当然基本的代码大家都很熟悉的,关键就是创意了,前几天一直在考虑绕一些固定的轨道旋转的问题,如果多个物体同时绕一个中心,以不同半径来旋转,并且旋转速度相同的话,这里是指角速度相同,因为半径不同,那么运动的线速度肯定有很大差别,那会有什么效果呢,那会出现一定的周期性,每隔一定时间就会重复一次,又从开始的位置重新运动,相当于周期性运动,下面就是根据这个简单的原理做出来的一个效果:
点击浏览该文件
其实步骤很简单,创建一个影片,画一个星星,将这个影片的链接名字设置为star,也就是右键点库中的这个影片,在链接一项中选择为动作脚本导出,然后写上名字就可以了。然后再创建一个空影片,用来写AS,在第一桢上写下面这些代码即可,然后将这个空影片拖到场景中,测试即可看到效果
num = 7; P = Math.PI/180; r = Array(); a = Array(); j=0;//以上是为了方便使用而初始化一些变量 for (var i = 0; i<num; i++) {//从库中附加影片到场景中 attachMovie("star", "star"+i, i); with (eval("star"+i)) { _x =i*20;//设置附加到场景中的影片的X坐标 r[i] = Math.sqrt(_x*_x+_y*_y);//设置附加的影片旋转轨道的半径,也就是到旋转中心的距离 a[i] =i*5;//设置各个星星开始的时候的角度 } this.onEnterFrame = function() {//逐桢进行 for (var i = 0; i<num; i++) { mycolor = new Color("star"+i);//定义颜色对象 mycolor.setRGB(random(0xffffff));//设置让影片随机变色 with (eval("star"+i)) { _x = r[i]*Math.cos(a[i]*j*P); _y = r[i]*Math.sin(a[i]*j*P);//设置影片的坐标位置,让影片让各自的半径轨道旋转 } } j++; }
原文件:
点击浏览该文件
|
|
| 文章录入:skyuu 责任编辑:skyuu |
|
| 【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |