如何利用as实现对音乐的控制?
解决思路
利用程序编程语言可以描绘出非常具象的物体。例如,我们利用AS可以创建一个影片剪辑,并设置这个影片剪辑的大小、外形、颜色等属性,并赋予其动作,就可以制作出具象物体的运动效果。下面的这三个效果都是通过as语句来完成的,大家不妨在抽象的、枯燥的语句快中体会一下DOS时代的灵感。
具体步骤
1、??运行Flash?MX?2004,文档属性默认。
2、??在图层1的第1帧绘制一个渐变填充的背景。如图3.3.111所示。
图3.3.111????绘制背景
3、??在这一帧上添加如下AS:
function?createSnowflake(n)?{
this.createEmptyMovieClip("snowflake"+n,?n);
mc?=?this["snowflake"+n];
mc.lineStyle(0,?0xFFFFFF,?50);
numSpikes?=?Math.round(Math.random()*5)+5;
spikeRadius?=?Math.random()*5+5;
for?(var?i?=?0;?i<numSpikes;?i++)?{
mc.moveTo(0,?0);
spikeAngle?=?2.0*Math.PI*i/numSpikes;
x?=?spikeRadius*Math.cos(spikeAngle);
y?=?spikeRadius*Math.sin(spikeAngle);
mc.lineTo(x,?y);
}
return?(mc);
}
function?initSnowflakes(n)?{
numSnowflakes?=?n;
for?(var?i?=?0;?i<numSnowflakes;?i++)?{
mc?=?createSnowflake(i);
mc._x?=?Math.random()*550;
mc._y?=?Math.random()*400;
mc.speed?=?Math.random()*3+3;
mc.drift?=?Math.random()*2-1;
mc.rotate?=?Math.random()*18-9;
?}
}
function?moveSnowflakes()?{
for?(var?i?=?0;?i<numSnowflakes;?i++)?{
mc?=?this["snowflake"+i];
mc._y?+=?mc.speed;
mc._x?+=?mc.drift;
mc._rotation?+=?mc.rotate;
?if?(mc._y>400)?{
mc._y?=?0;
??}
?if?(mc._x<0)?{
mc._x?=?550;
??}
?if?(mc._x>550)?{
?mc._x?=?0;
??}
?}
}
initSnowflakes(50);
stop();
moveSnowflakes
_root.onEnterFrame?=?function()?{
?_root.moveSnowflakes();
};
4、function?createSnowflake(n)?{
?//?建立一个空的MC
?this.createEmptyMovieClip("snowflake"+n,?n);
?mc?=?this["snowflake"+n];
?//?把线型设置为极细线,白色,半透明
?mc.lineStyle(0,?0xFFFFFF,?50);
?//?设置一个随机变量numSpikes,用它来存储雪花的瓣数
?numSpikes?=?Math.round(Math.random()*5)+5;
?//?设置随机的雪花半径长度
?spikeRadius?=?Math.random()*5+5;
?//?开始画雪花了,使用lineTo命令
?for?(var?i?=?0;?i<numSpikes;?i++)?{
??mc.moveTo(0,?0);
??spikeAngle?=?2.0*Math.PI*i/numSpikes;
??x?=?spikeRadius*Math.cos(spikeAngle);
??y?=?spikeRadius*Math.sin(spikeAngle);
??mc.lineTo(x,?y);
?}
?//?返回MC
?return?(mc);
}
function?initSnowflakes(n)?{
?//?把参数n置入numSnowflakes
?numSnowflakes?=?n;
?//?建立n个MC
?for?(var?i?=?0;?i<numSnowflakes;?i++)?{
??mc?=?createSnowflake(i);
??//?设置MC的位置为随机
??mc._x?=?Math.random()*550;
??mc._y?=?Math.random()*400;
??//?设置随机的雪花下落速度
??mc.speed?=?Math.random()*3+3;
??//?随机的飘移速度
??mc.drift?=?Math.random()*2-1;
??//随机的旋转速度
??mc.rotate?=?Math.random()*18-9;
?}
}
function?moveSnowflakes()?{
?//?开始移动numSnowflakes个雪花
?for?(var?i?=?0;?i<numSnowflakes;?i++)?{
??//?下落+飘移+旋转
??mc?=?this["snowflake"+i];
??mc._y?+=?mc.speed;
??mc._x?+=?mc.drift;
??mc._rotation?+=?mc.rotate;
??//?假如落到最下面就从上部重来
??if?(mc._y>400)?{
???mc._y?=?0;
??}
??//?假如走出左右边界的话就从相反的一边出现
??if?(mc._x<0)?{
???mc._x?=?550;
??}
??if?(mc._x>550)?{
???mc._x?=?0;
??}
?}
}
//?开始初始化,50个雪花
initSnowflakes(50);
stop();
//每帧都执行函数moveSnowflakes
_root.onEnterFrame?=?function()?{
?_root.moveSnowflakes();
};
保存,测试一下效果把。参看源文件“纯as制作雪花”。
Word教程网 | Excel教程网 | Dreamweaver教程网 | Fireworks教程网 | PPT教程网 | FLASH教程网 | PS教程网 |
HTML教程网 | DIV CSS教程网 | FLASH AS教程网 | ACCESS教程网 | SQL SERVER教程网 | C语言教程网 | JAVASCRIPT教程网 |
ASP教程网 | ASP.NET教程网 | CorelDraw教程网 |