Flash AS 入门 as自定义函数

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

一、 Flash中自定义函数的一般形式为:

  function 函数名称(参数1,参数2,……,参数n){

  //函数体。即函数的程序代码

  }

  自定义函数必须调用才有效。调用自定义函数的一般形式为:

  路径.函数名称(参数1,参数2,……,参数n)

  函数就像变量一样,必须正确使用目标路径才能调用它们。

  二、例题

  例1 假设我们要定义一个计算矩形面积的函数,可以这样:(打开21.1.fla)


复制代码
代码如下:

 shu1 = shu2=dan="";//设置输入文本与动态文本
 function jxmj(a, b) {//自定义计算矩形面积的函数
 return a*b; //在这里返回结果,也就是得到函数的返回值
 }

然后在按扭中调用这个函数:

复制代码
代码如下:

 on (release) {
  dan = jxmj(shu1, shu2);//分别用两输入文本的值作为参数a,b;并且把函数返回的值用动态文本显示出来。
 }

利用这个计算矩形面积的函数就可以计算任何矩形面积。

  例2 打开21.2.fla源文件

  这是我们前面一个作业中是一部分。当在“控制”按钮、“小松鼠”影片剪辑或者“小球”影片剪辑上按下鼠标时,小松鼠和小球分别按照相反的方向运动;这三个事件要达到的目的都一样,所以,脚本必定重复,我们可以使用自定义函数。

  在场景第一帧的脚本:


复制代码
代码如下:

 function yd () { //自定义函数名称为yd;
 gotoAndPlay(1); //场景到第1帧播放;
 qiu_mc.gotoAndPlay(31);//qiu_mc到第31帧播放;
 }

在松手上的脚本:

复制代码
代码如下:

 on (press) {
 _root.yd()//自定义函数在这个影片的父级(场景)上,因此,应该指出路径
  (_root)
 }

在球上的脚本:

复制代码
代码如下:

 on (press) {
 _root.yd()//同上;
 }

在按扭上的脚本:

复制代码
代码如下:

 on (press) {
 yd()//按扭和自定义函数都在场景上,路径可以省略不写。
 }

例3 打开21.3.fla源文件

  源文件中有三个mc在做补间动作,下面的三个按扭分别控制场境中的三个mc。观察这三个按扭上的脚本,左边一个按扭上的脚本为:


复制代码
代码如下:

 on (release) {
 a_mc._visible = 1;
 duplicateMovieClip(a_mc, "a_mc"+1, 1);
 b_mc._visible = 0;
 c_mc._visible = 0;
 }

中间一个按扭上的脚本为:

复制代码
代码如下:

 on (release) {
 b_mc._visible = 1;
 duplicateMovieClip(b_mc, "b_mc"+1, 1);
 a_mc._visible = 0;
 c_mc._visible = 0;
 }

右边一个按扭上的脚本为:

复制代码
代码如下:

 c_mc._visible = 1;
 duplicateMovieClip(c_mc, "c_mc"+1, 1);
 a_mc._visible = 0;
 b_mc._visible = 0;
 }

注意观察这三个按扭上脚本中有那些是相同的的部分,那些是不同的的部分。相同的部分,在函数中直接写下来,而不同的部分(变化着的部分)用用一个变量来表示,这个变量就是参数。

  例如,这三个按扭上脚本中第一句中相同的部分是都有_visible = 1,而不同的则是要显示的mc(分别是a_mc,b_mc,c_mc),我们用变量mx来表示,那么,三个按扭上脚本中第一句可以统一表示为:

  mx._visible = 1。这里的mx就是第一个参数。

  这三个按扭上脚本中第二句中相同的部分是都要复制一个mc,复制后的mc的名称都是复制对象名称+1,复制后的mc的深度都是1;不同的部分就是复制的对象不同,而这个复制的对象正好的第一句中的mc,因此,第二句中不同的部分也就可以用第一个参数mx来表示,因此,三个按扭上脚本中第二句可以统一表示为:


复制代码
代码如下:
duplicateMovieClip(mx, "mx"+1, 1).

  同样办法可以得到脚本的第3,第4句,因此,我们可以在场景的第1帧上设置自定义函数:


复制代码
代码如下:

 function test (mx,my,mz) {//test是自定义函数的名称,你可以用
  mx._visible = 1; //你喜欢字母或者字母组合或者单词来表示
  duplicateMovieClip(mx, "mx"+1, 1);
  my._visible = 0;
  mz._visible = 0;
 }

左边这个按扭是要使a_mc显示并且复制,因此第一个参数在这里表示的应该是a_mc,第二,三个参数在这里表示的应该是b_mc,c_mc;因此,在这里调用的函数应该写成:

复制代码
代码如下:

  on (release) {
  test(a_mc,b_mc,c_mc)
  }

仿照上面的思路,请大家在后两个按扭上分别写出脚本,使一个mc显示并且复制,另两个mc不可见。

  三、作业:

  把源文件中6个按扭上的脚本都改为调用自定义函数的形式。源文件 21.作业.fla

  提示:

  1 连+20或者连-20可以表示为1*20或者-1*20;

  2 注意使用if...else if

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

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 分享
查看更多