相信这种效果大家经常看到:
点击浏览该文件但是大家都会作么?呵呵,今天我就来教大家一下^_^
将下面的代码直接放在场景第一桢的动作面板中:重要的是明白原理……
我已经在代码上做了比较具体的注释
a=200;
b = 200;
rx = 150;
ry = 5;
speed = 0.05;
N = 8;//以上是初始化一些变量
hu = (Math.PI/180);
angle = new Array();//定义一个数组
square = function (mc, tian) {//自定义一个函数,有两个参数
with (mc) {
lineStyle(1, 0xffff00, 100);
beginFill(tian, 100);
moveTo(0, 0);
lineTo(30, 0);
lineTo(30, 30);
lineTo(0, 30);
lineTo(0, 0);
endFill();
}//这个函数的主要作用是画一个正方形并进行填充
};
_root.onLoad = function() {
for (i=1; i<=N; i++) {
//创建N个影片,并分别在这N个影片中调用函数,在每个影片中创建一个正方形,并随机填充颜色
_root.createEmptyMovieClip("mc"+i, i);
square(_root["mc"+i], random(0xffffff));//或者填充颜色用rgb
angle[i] = i*360/N;//设置创建正方形的角度
}
};
_root.onEnterFrame = function() {
for (i=1; i<=N; i++) {//先面用到了椭圆公式,也就是让创建的这些影片绕着椭圆轨道运动
this["mc"+i]._x = rx*Math.cos(hu*angle[i])+a;
this["mc"+i]._y = ry*Math.sin(hu*angle[i])+b;//设置创建影片的坐标,根据椭圆公式
this["mc"+i]._alpha = Math.sin(hu*angle[i])*40+60;//设置透明度,这里注重Y坐标方向与我们熟悉的直角坐标的Y方向相反
this["mc"+i]._xscale = (1-Math.abs(Math.cos(hu*angle[i])))*100;
//控制创建的正方形的X方向上的缩放,就是椭圆轨道两边的缩放程度大,正对着Y轴的不进行缩放,从而模拟空间效果
angle[i] += speed*(_root._xmouse-a);
//角度的增加或者减少是根据鼠标与椭圆轨道中心点的距离来确定的,鼠标与此点距离越远,旋转速度越快
}
};
点击浏览该文件