Flash AS3实例:制作有音乐的七彩小球动画
脚本之家
本教程主要用Flash AS3来制作好看的七彩小球动画,当小球轮流轮流闪动时会有音乐响起,教程制作出来的动画效果非常漂亮,转发过来,喜欢的朋友可以跟着一起来学习。先看看效果:
详细代码:
var yy:Sound =new Yy();//=====音乐
var ch:SoundChannel=new SoundChannel();
for (var i:int=0; i<48; i++) {//创建一个for循环,循环48次
var mc:Sprite=new Sprite();//声明一个容器类实例mc
addChild(mc);//把mc添加显示列表
mc.name="mc"+i;//mc的名字
mc.graphics.beginGradientFill("radial",[0xFFFFFF,0x000000],[1,1],[0,160]);//在mc中设置渐变填充样式(放射状,颜色,透明度,色块位置)
mc.graphics.drawCircle(12,12,12);//在mc中画圆(圆心坐标(12,12)半径12)
if (i<15) {//如果i小于15
mc.x=21+34*(i%15);//mc的X坐标为21、55、80……
mc.y=9;//mc的Y坐标为9
} else {//否则
mc.x=21;//mc的X坐标为21
mc.y=9+35*(i-14);//mc的Y坐标为44、79、114……
}
if (i>24) {//如果i大于24
mc.x=21+34*((i-24)%15);//mc的X坐标为21、55、80……
mc.y=360;//mc的Y坐标为360
}
if (i>38) {//如果i大于38
mc.x=498;//mc的X坐标为498
mc.y=9+35*(i-38);//mc的Y坐标为44、79、114……
}
}
var k:int=0;//声明一个整数型变量k,初始值为0
pl_mc.buttonMode=true
pl_mc.addEventListener(MouseEvent.CLICK,clickEvent);//为按钮a_btn添加鼠标单击事件侦听,调用函数clickEvent
function clickEvent(evt:MouseEvent) {//定义鼠标事件函数clickEvent
if (k++%2==0) {//k每单击一次增加1,如果k除以2的余数等于2
ch=yy.play();
pl_mc.gotoAndStop(2);
addEventListener(Event.ENTER_FRAME,frame);//添加帧频事件侦听,调用函数frame
} else {//否则
removeEventListener(Event.ENTER_FRAME,frame);//移除调用事件frame的帧频事件侦听
ch.stop();
pl_mc.gotoAndStop(1);
}
}
function frame(evt:Event):void {//声明帧频事件函数frame
for (var i:int=0; i<48; i++) {//创建一个for循环,循环48次
var MC:Sprite=getChildByName("mc"+i) as Sprite;//声明容器类实例MC,按名字获取
MC.transform.colorTransform=new ColorTransform(1,1,1,1,Math.random()*510-255,Math.random()*510-255,Math.random()*510-255,0);//设置MC的颜色转换(红绿蓝透明乘数值都为1,红绿蓝偏移量为-255-255之间的随机数,透明度偏移量为0)
}
}
var ch:SoundChannel=new SoundChannel();
for (var i:int=0; i<48; i++) {//创建一个for循环,循环48次
var mc:Sprite=new Sprite();//声明一个容器类实例mc
addChild(mc);//把mc添加显示列表
mc.name="mc"+i;//mc的名字
mc.graphics.beginGradientFill("radial",[0xFFFFFF,0x000000],[1,1],[0,160]);//在mc中设置渐变填充样式(放射状,颜色,透明度,色块位置)
mc.graphics.drawCircle(12,12,12);//在mc中画圆(圆心坐标(12,12)半径12)
if (i<15) {//如果i小于15
mc.x=21+34*(i%15);//mc的X坐标为21、55、80……
mc.y=9;//mc的Y坐标为9
} else {//否则
mc.x=21;//mc的X坐标为21
mc.y=9+35*(i-14);//mc的Y坐标为44、79、114……
}
if (i>24) {//如果i大于24
mc.x=21+34*((i-24)%15);//mc的X坐标为21、55、80……
mc.y=360;//mc的Y坐标为360
}
if (i>38) {//如果i大于38
mc.x=498;//mc的X坐标为498
mc.y=9+35*(i-38);//mc的Y坐标为44、79、114……
}
}
var k:int=0;//声明一个整数型变量k,初始值为0
pl_mc.buttonMode=true
pl_mc.addEventListener(MouseEvent.CLICK,clickEvent);//为按钮a_btn添加鼠标单击事件侦听,调用函数clickEvent
function clickEvent(evt:MouseEvent) {//定义鼠标事件函数clickEvent
if (k++%2==0) {//k每单击一次增加1,如果k除以2的余数等于2
ch=yy.play();
pl_mc.gotoAndStop(2);
addEventListener(Event.ENTER_FRAME,frame);//添加帧频事件侦听,调用函数frame
} else {//否则
removeEventListener(Event.ENTER_FRAME,frame);//移除调用事件frame的帧频事件侦听
ch.stop();
pl_mc.gotoAndStop(1);
}
}
function frame(evt:Event):void {//声明帧频事件函数frame
for (var i:int=0; i<48; i++) {//创建一个for循环,循环48次
var MC:Sprite=getChildByName("mc"+i) as Sprite;//声明容器类实例MC,按名字获取
MC.transform.colorTransform=new ColorTransform(1,1,1,1,Math.random()*510-255,Math.random()*510-255,Math.random()*510-255,0);//设置MC的颜色转换(红绿蓝透明乘数值都为1,红绿蓝偏移量为-255-255之间的随机数,透明度偏移量为0)
}
}
测试,完毕!
教程结束,以上就是用Flash AS3制作好看的七彩小球动画过程,希望对大家有所帮助!