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

所属分类: 媒体动画 / Flash教程 阅读数: 73
收藏 0 赞 0 分享

  源文件下载

  圆和椭圆函数

  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被放置成一个圆和椭圆。作为圆和椭圆,他们是静止在各自的位置上。如何让这个圆和椭圆动(旋转)起来哩?

  点击查看动画效果<

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

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

  例 3.3.2

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

  点击查看动画效果<

  例 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文件。

  点击查看动画效果<

  例 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,并把它们均匀的摆放在正玄函数图象上。如下图:

  点击查看动画效果<

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

  点击查看动画效果<

更多精彩内容其他人还在看

flash怎么制作镜像动画?

flash怎么制作镜像动画?flash中制作动画很简单,怎么才能制作一个动画的镜像呢?下面我们就来看看flash制作镜像动画的详细教程,很简单,需要的朋友可以参考下
收藏 0 赞 0 分享

flash制作图片变换的gif动画效果

这篇教程是向脚本之家的朋友分享flash制作图片变换的gif动画效果方法,教程制作出来的动画效果非常不错,难度不是很大,一起来学习吧
收藏 0 赞 0 分享

flash怎么绘制和谐号火车从火车道开过的动画?

flash怎么绘制和谐号火车从火车道开过的动画?想制作一个火车从轨道上飞奔而过的一个画面,该怎么制作呢?下面我们就来看看flash制作和谐号火车从火车道开过的动画的教程,需要的朋友可以参考下
收藏 0 赞 0 分享

FLASH怎么制作红烛燃烧的动画?

FLASH怎么制作红烛燃烧的动画?FLASH中做动画很方便,今天我们就来看看使用flash制作蜡烛燃烧并流下烛蜡的教程,很简单,下面我们就来看看详细教程,需要的朋友可以参考下
收藏 0 赞 0 分享

flash怎么填充渐变色? flash渐变填充的使用方法

flash怎么填充渐变?flash中想给图形添加渐变色,该怎么添加呢?下面我们就来看看flash渐变填充的使用方法,这是基础教程,很简单,需要的朋友可以参考下
收藏 0 赞 0 分享

flash怎么制作磁铁吸钉子的动画?

flash怎么制作磁铁吸钉子的动画?我们知道钉子放到磁铁周围就会直接将钉子吸走,该怎么制作这个动画呢?下面我们就来看看flash制作磁铁吸引钉子的动画教程,需要的朋友可以参考下
收藏 0 赞 0 分享

flash怎么画中国国宝大熊猫? flash绘制卡通大熊猫的教材

flash怎么画中国国宝大熊猫?flash中制作动画很简单,但是也可以简单的绘制图形,该怎么绘制呢?今天我们就来看看flash绘制卡通大熊猫的教材,需要的朋友可以参考下
收藏 0 赞 0 分享

Flash工具缩放、旋转和倾斜对象使用介绍

今天小编为大家介绍Flash工具缩放、旋转和倾斜对象使用方法,对于初学者来说,是个很好的学习教程,推荐到脚本之家,一起来看看吧
收藏 0 赞 0 分享

flash中怎么用鼠标绘制一朵木兰花?

flash中怎么用鼠标绘制一朵木兰花?flash中除了做动画效果以外,还可以绘制图形,今天我们就来看看flash用鼠标绘制一朵木兰花的详细教程,很简单,详细教程请看下文
收藏 0 赞 0 分享

FLASH制作一个小车一直往前推的动画?

FLASH制作一个小车一直往前推的动画?想做一个动画,就是有个小推车一直不断的往前进,中途不能倒,该怎么制作呢?下面我们就来看看这个动画的制作方法,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多