本页面由 Flash 保存计划 从 Internet Archive 存档还原 · 快照 2005-12-26 · 原址 http://flash8.net/teach/3903.htm ← Flash 保存计划

如何利用as实现对音乐的控制?

作者:闪吧   类型:原创   来源:闪吧

  

如何利用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制作雪花”。

   责任编辑:kissall    时间:2005年8月29日

正在加载评论...