Flash-AS-入门-as自定义函数
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、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 不可见。