仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 541|回复: 7
打印 上一主题 下一主题

[学习教程] 来看看:AS3.0实例教程:SoundMixer.computeSpectrum()办法-Flash actionscript

[复制链接]
变相怪杰 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-15 20:37:48 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
用于设计和编辑Flash文档。1996年11月,美国Macromedia公司收购了FutureWave,并将其改名为Flash。后又被Adobe公司收购。
poluoluo中心提醒:FlashAS3.0实例教程:构建复杂的声响可视化程序(波型图).
本例为FlashAS3.0实例教程,在教程中我们将进修使用SoundMixer.computeSpectrum()办法来构建复杂的声响可视化程序(即波形图),但愿能给伴侣们带来匡助~~
AS3.0构建复杂的声响可视化程序(波型图):



利用SoundMixer.computeSpectrum()办法来显现声响波形图:

importflash.display.Graphics;
importflash.events.Event;
importflash.media.Sound;
importflash.media.SoundChannel;
importflash.media.SoundMixer;
importflash.net.URLRequest;

constPLOT_HEIGHT:int=200;
constCHANNEL_LENGTH:int=256;

varsnd:Sound=newSound();
varreq:URLRequest=newURLRequest("玉轮之上.mp3"); //设置声响源文件地点(此为当地,可设置远程)
snd.load(req);

varchannel:SoundChannel;
channel=snd.play();
addEventListener(Event.ENTER_FRAME,onEnterFrame);
snd.addEventListener(Event.SOUND_COMPLETE,onPlaybackComplete);

varbytes:ByteArray=newByteArray();

functiononEnterFrame(event:Event):void
{
SoundMixer.computeSpectrum(bytes,false,0);

varg:Graphics=this.graphics;

g.clear();
g.lineStyle(0,0x6600CC);
g.beginFill(0x6600CC);
g.moveTo(0,PLOT_HEIGHT);

varn:Number=0;

//leftchannel
for(vari:int=0;i<CHANNEL_LENGTH;i++)
{
n=(bytes.readFloat()*PLOT_HEIGHT);
g.lineTo(i*2,PLOT_HEIGHT-n);
}
g.lineTo(CHANNEL_LENGTH*2,PLOT_HEIGHT);
g.endFill();

//rightchannel
g.lineStyle(0,0xCC0066);
g.beginFill(0xCC0066,0.5);
g.moveTo(CHANNEL_LENGTH*2,PLOT_HEIGHT);

for(i=CHANNEL_LENGTH;i>0;i--)
{
n=(bytes.readFloat()*PLOT_HEIGHT);
g.lineTo(i*2,PLOT_HEIGHT-n);
}
g.lineTo(0,PLOT_HEIGHT);
g.endFill();
}

functiononPlaybackComplete(event:Event)
{
removeEventListener(Event.ENTER_FRAME,onEnterFrame);
}先加载并播放一个声响文件,然后在播放声响的同时侦听将触发onEnterFrame()办法的Event.ENTER_FRAME事务。onEnterFrame()办法先挪用SoundMixer.computeSpectrum()办法,后者将声响波形数据存储在bytesByteArray工具中。
声响波形是利用矢量画图API绘制的。for轮回将轮回会见第一批256个数据值(暗示左平面声声道),然后利用Graphics.lineTo()办法绘制一条从每一个点到下一个点的直线。第二个for轮回将轮回会见下一批256个值,此时按相反的按次(从右到左)对它们举行绘制。天生的波形图大概会发生风趣的镜像图象效果。

FlashScreensaversMaker能够迅速的将您的Flash作品转化为屏保程序。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-6-1 13:09

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表