手机
当前位置:查字典教程网 >网页设计 >Flash教程 >Flash AS 入门教程 圆和椭圆函数的应用
Flash AS 入门教程 圆和椭圆函数的应用
摘要:源文件下载圆和椭圆函数1、圆的参数方程:复制代码代码如下:x=r*cosX//x、y是圆上一点的坐标;r是圆半径;y=r*sinX//X是圆...

Flash AS 入门教程 圆和椭圆函数的应用1

源文件下载

圆和椭圆函数

1、圆的参数方程:

复制代码代码如下:

x=r*cosX //x、y是圆上一点的坐标;r是圆半径;

y=r*sinX //X是圆半径绕圆心旋转的角度。

2、椭圆的参数方程:

复制代码代码如下:

x=a*cosX //x、y是椭圆上一点的坐标;a、b分别是长、短轴

y=b*sinX //X是椭圆旋转的角度。

圆和椭圆函数应用举例

例 3.3.1 (打开3.3.1.fla文件

场景中有一个影片剪辑,双击这个mc,在这个mc内,我们看到有两个小影片剪辑(f_mc,d_mc),写在第一帧上的脚本:

this.f_mc._visible = this.d_mc._visible=0;

for (k=1; k<21; k++) {

duplicateMovieClip(this.f_mc, "f"+k, k);

duplicateMovieClip(this.d_mc, "d"+k, k+40);

}

for (k=1; k<21; k++) {

this["f"+k]._x = 130*Math.cos(18*k*Math.PI/180);//圆半径是130,圆周上每隔18度

this["f"+k]._y = 130*Math.sin(18*k*Math.PI/180);//放一个复制的mc

this["d"+k]._x = 130*Math.cos(18*k*Math.PI/180);//椭圆的长轴是130,短轴是60;椭圆的

this["d"+k]._y = 60*Math.sin(18*k*Math.PI/180); //圆周上也是每隔18度放一个复制的mc

}

角度18*k*Math.PI/180中Math.PI/180是把1度转换成的弧度;k取1~20,那么18*k*Math.PI/180就是18度到360度。刚好每隔18度放置一个mc

按Ctrl+Enter播放,我们可以看到复制的mc被放置成一个圆和椭圆。作为圆和椭圆,他们是静止在各自的位置上。如何让这个圆和椭圆动(旋转)起来哩?

Flash AS 入门教程 圆和椭圆函数的应用2

点击查看动画效果<

我们可以这样考虑,在帧频事件的循环中,每循环一次(j++),使圆(或者椭圆)上的点都再旋转18度(角度都增加18*j度),到达下一个位置,这样圆(或者椭圆)就可以旋转起来了。

由于每一次旋转都是复制的mc的位置互换,而整体的图形没有改变,所以,我们不容易看到圆(或者椭圆)在运动,解决的办法是把其中的几个mc的放大系数改变。

例 3.3.2

打开3.3.2.fla文件,比较它与3.3.1.fla文件的脚本的差异,运行3.3.2.fla文件,观察效果。

Flash AS 入门教程 圆和椭圆函数的应用2

点击查看动画效果<

例 3.3.2源程序:

复制代码代码如下:

j = 0;

this.f_mc._visible = this.d_mc._visible=0;

for (k=1; k<21; k++) {

duplicateMovieClip(this.f_mc, "f"+k, k);

duplicateMovieClip(this.d_mc, "d"+k, k+40);

}

f1._xscale = f1._yscale=f10._xscale=f10._yscale=100;//放大复制后其中几个mc

d5._xscale = d5._yscale=d15._xscale=d15._yscale=50;

this.onEnterFrame = function() {

j++;

for (k=1; k<21; k++) {

this["f"+k]._x = 130*Math.cos(18*k*Math.PI/180+18*j*Math.PI/180);

this["f"+k]._y = 130*Math.sin(18*k*Math.PI/180+18*j*Math.PI/180);

this["d"+k]._x = 130*Math.cos(18*k*Math.PI/180-18*j*Math.PI/180);

this["d"+k]._y = 50*Math.sin(18*k*Math.PI/180-18*j*Math.PI/180);

}

};

角度中+18*j*Math.PI/180在帧频事件的循环中,每循环一次影片位置的角度增加18度。-18*j*Math.PI/180与前面方向相反。

我们使圆和椭圆都旋转运动起来了,我们还可以不断改变圆的半径和椭圆的长、短轴,使圆和椭圆互相转换,或者其它的形状变化。有兴趣的可以参见3.3.3.fla文件。

Flash AS 入门教程 圆和椭圆函数的应用2

点击查看动画效果<

例 3.3.3源程序脚本:

复制代码代码如下:

j = rotat=scale=0;//设置计数变量、旋转角度和放大系数的初始值为0;

q = l=w=130;//设置圆的半径和椭圆长轴(开始时的值)

m = 50;//设置椭圆短轴

this.f_mc._visible = this.d_mc._visible=0;

for (k=1; k<21; k++) {

duplicateMovieClip(this.f_mc, "f"+k, k);

duplicateMovieClip(this.d_mc, "d"+k, k+40);

}

f1._xscale = f1._yscale=f10._xscale=f10._yscale=100;

//使复制的mc中是4个面积变大为4倍

d5._xscale = d5._yscale=d15._xscale=d15._yscale=50;

this.onEnterFrame = function() {

this._rotation += rotat;//使(f_mc的)父级mc旋转;

this._xscale -= scale;//放大或者缩小(f_mc的)父级mc

this._yscale -= scale;

j++;

for (k=1; k<21; k++) {

this["f"+k]._x = q*Math.cos(18*k*Math.PI/180+18*j*Math.PI/180);

this["f"+k]._y = l*Math.sin(18*k*Math.PI/180+18*j*Math.PI/180);

this["d"+k]._x = w*Math.cos(18*k*Math.PI/180-18*j*Math.PI/180);

this["d"+k]._y = m*Math.sin(18*k*Math.PI/180-18*j*Math.PI/180);

}

if ((j>40) && (j<=110)) {

l -= 2.2;//圆的宽每次减2.2

q -= 1;//圆的高每次减1

m += 1.2;//椭圆的短轴每次增加1.2

w -= 1;//椭圆的长轴每次减1

}

if ((j>110) && (j<=220)) {

l += 2;//圆的宽每次加2

m -= 1.5;//椭圆原来的短轴每次减1.2

w += 0.7;//椭圆的长轴每次加0.7

}

if ((j>220) && (j<=260)) {

q += 1;//圆的高每次加1

l -= 3.2;//圆的宽每次减3.2

m--;//椭圆原来的短轴每次减1

}

if ((j>260) && (j<=320)) {

q += 2;//圆的高每次加2

m += 2.5;//椭圆原来的短轴每次加2.5

w -= 2;//椭圆的原来的长轴每次减2

}

if (j>320 && j<=450) {

q -= 3.5;//圆的高每次减3.5

w += 1.5;//椭圆的原来的长轴每次加1.5

}

if (j>450 && j<=550) {

q = -190;//保持原来圆的高为190

w = 180;//保持原来椭圆的长轴为180

rotat = 5;//这里给旋转变量赋值,f_mc的父级mc开始旋转

scale = 1;//这里给放大系数变量赋值,f_mc的父级mc开始放大

}

if (j>550) {

scale = -1;//f_mc的父级mc反方向放大

rotat = -5;//f_mc的父级mc反方向旋转

}

if (j>650) {

j = scale=0;//给各变量重新赋初值,使动画循环播放

l = q=w=130;

m = 50;

}

};

作业

A 利用例3.2.2的源程序,复制任意的21个mc,并把它们均匀的摆放在正玄函数图象上。如下图:

Flash AS 入门教程 圆和椭圆函数的应用2

点击查看动画效果<

B最好能使这个mc摆成下面的正弦图形,并且能左右运动起来。

Flash AS 入门教程 圆和椭圆函数的应用2

点击查看动画效果<

【Flash AS 入门教程 圆和椭圆函数的应用】相关文章:

Flash教程:if条件语句的用法

Flash AS 教程:类和面向对象编程

Flash AS2教程:鼠标感应放大缩小图片效果

Flash实例教程:单选题的制作

Flash AS教程:图片环绕旋转动画

Flash入门教程,学习遮照在Flash中的运用

Flash AS特效:超绚丽的闪字动画

Flash CS4教程:制作切换扑克牌效果

Flash AS教程:填色游戏的制作

下雪效果,Flash初级入门教程

精品推荐
分类导航