试试效果先:
1、按Ctrl+F8新建一个MC,命名为“泡泡”。
2、然后在这个MC里画一个泡泡。如图:
3、在库中“泡泡”这个MC上点右键,然后加上链接名“paopao_mc”。
4、回到主场景,选中第一帧,然后按F9加上代码,代码及注释:
this.createEmptyMovieClip("mic_mc", -1);//创建一个MC用来装话筒接收到的声音
var _mic:Microphone = Microphone.get();//获取电脑上的话筒
//_mic.setGain(20);//这里设置话筒的音量增益,默认值是50,一般都用默认。
mic_mc.attachAudio(_mic);//把话筒的声音放到mic_mc中来,这样我们才能听到自己吹泡泡的声音
//////////////
var _num:Number = 0;//设置一个变量,用来设置吹出来的泡泡的深度
var temp_num:Number = 0;//设置一个变量,作用同上
function chupaopao_func(N:Number) {//这里的N是由下面的声音传递来的,N用来决定发出泡泡的数量,这个函数用于发出泡泡
_num += 20;
temp_num++;
for (var d:Number = _num*temp_num; d>_num*temp_num-N; d--) {//用一个for循环来生成根据声音大小生产的个数的泡泡
this.attachMovie("paopao_mc", "paopao_mc"+d, d, {_x:275, _y:360, _rotation:Math.random()*36});//调用 库中那个刚才画的泡泡到舞台,花括号中是设置的初始值,依次为 X坐标,Y坐标,旋转度。
this["paopao_mc"+d]._xspeed = 10-Math.random()*20;//设置它的X运动加速度
this["paopao_mc"+d]._yspeed = Math.random()*10;//设置它的Y方向的运动加速度
this["paopao_mc"+d]._scale = Math.random();//设置它的大小缩放加速度
var color:Color = new Color(this["paopao_mc"+d]);//这两行是让泡泡随机生成颜色,所以我们看到的就是一堆彩色泡泡,假如不用它,所有的泡泡就是一个颜色了。
color.setRGB(Math.random()*0xffffff);
this["paopao_mc"+d]._xscale = this["paopao_mc"+d]._yscale=Math.random()*50+50;//设置泡泡出来时的大小,这一句也可以在花括号中定义
this["paopao_mc"+d].onEnterFrame = function() {//泡泡不断运行
this._xscale += this._scale;//X Y方向上不断加大缩放,看起来泡泡就慢慢变大了,而且每个泡泡的_scale值是随机定义的,所以它们变大的速度并不一样
this._yscale += this._scale;
this._alpha = 8000/this._xscale;//透明度也随缩放值变化,泡泡越变得大,透明度越小
this._x -= this._xspeed;//泡泡自身的运动,由于 它们的_xspeed _yspeed也是在生成时随机产生的,所以每个泡泡运动起来速度不一样。
this._y -= this._yspeed;
if (this._x<0 || this._y<0 || this._x>550 || this._xscale>=122) {//当泡泡向左,向上,向右跑出舞台,或者变得太大时,就摧毁自己,当然就从舞台上消失了。
this.removeMovieClip();
}
};
}
}
////////////////////////
onEnterFrame = function () {
mic_mc._width = _mic.activityLevel;//显示话筒音量的MC宽度随音量的大小变化
mic_txt.text = Math.abs(_mic.activityLevel-5);//显示话筒音量的数字
chupaopao_func(Math.floor(_mic.activityLevel/10));//根据音量执行上面的出泡泡函数
};
5、界面就自己加了,我也是用的别人的,嘿嘿...
源文件:
吹泡泡.rar