马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
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作品转化为屏保程序。 |