Flash5 有声音的三眼狼(四)
,flash 5也有两种自定义函数,即有参数的和无参数的(可叫过程)语法:
function 函数名([参数0, 参数1,...参数N]){ 语句}
function ([参数0, 参数1,...参数N]){语句}
语句可以是空语句,使用return语句可返回一个值(ep:return a;),参数是函数内的形式参数,调用时替换成实际参数(值参、变参)。可以实现递归或传送变量,还可以直接在表达式内使用(a= function () {return b})。
接上面的调用,在场景的action中输入代码:
function ltor () { //接 ‘3’键的调用
snd.ll = 0;
snd.lr = 0;
snd.rr = 0;
snd.rl = 0;
snd.setTransform(snd); //初始化
for (i=0, j=100; i$#@60;=100; i++, j--) {//没加上j$#@62;=0,这样可以加快速度,如果i$#@60;=100,就使ll,lr逐渐
snd.ll = i; //增大,rr,rl逐渐变小,以达到从左声道到右声道的渐变效果,
snd.lr = i;
snd.rr = j;
snd.rl = j;
snd.setTransform(snd);
for (d=0; d$#@60;1000; d++) { //这个循环的目的是实现延时效果,不至于马上就循环结束,破坏渐变}}}
function rtol () {
snd.ll = 0;
snd.lr = 0;
snd.rr = 0;
snd.rl = 0;
snd.setTransform(snd);
for (i=0, j=100; i$#@60;=100; i++, j--) {//这个过程和上面的相反,实现的效果是从右声道到左声道渐变
snd.ll = j;
snd.lr = j;
snd.rr = i;
snd.rl = i;
snd.setTransform(snd);
for (d=0; d$#@60;1000; d++) {
}}}
6,现在加入选择声音的模块,先从源文件里拉出3个按钮,如图排列:
“1”的action: on (release) {//停止声音,并 snd.stop();//绑定住s1,开始播放 snd.attachSound("s1"); snd.start(); tellTarget ("/mm") { gotoAndPlay (2);//开始眼眉动画}} | “2”的action: on (release) { snd.stop();//绑定并播放s2 snd tachSound("s2"); snd.start(); tellTarget ("/mm") { gotoAndPlay (2);}} | “3”的action: on (release) { snd.stop();//绑定并播放s3 snd.attachSound("s3"); snd.start(); tellTarget ("/mm") { gotoAndPlay (2);}} |
7,现在大可以测试了。