返回首页
用户名:  密   码:    用户注册 | 忘记密码?
收藏本站 设为首页  
娱乐资讯 | 时尚潮流 | 都市生活 | 汽车沙龙 | 房产楼市 | 精品写真 | Flash欣赏 | 电脑技术 | 软件源码
数码世界 | 摄影部落 | 博客社区 | 在线音乐 | WHOIS查询 | 交流论坛
当前位置:首页>电脑技术>闪客攻略>列表  
用flash9制作的播放音乐时频谱真实显示 (1)
来源:闪吧    时间:2007-04-12    查看:   字体: [ ]  

好长时间未发帖了,前几天版主说到使用Flash不同版本的心得,原来曾在此发过一个用Flash6制作的实时显示音乐时频谱的东东:
http://space.flash8.net/bbs/viewthread.php?tid=307160&extra=page%3D1%26amp%3Bfilter%3Ddigest
(需要首先将mp3转换为swf,再对转换后的swf进行处理,才能正确显示声音频谱),可以说Flash8及以下的版本对声音的支持是有限的,而Flash9在此方面进行了升级,对声音的处理能力大为提升,下面发一个用flash9制作的播放音乐时频谱真实显示的小实例(参考了他人心得),界面如下图1:
图片附件: 1.jpg


1.打开Flash9,在主场景第一帖上(仅此一帧):
import flash.display.Sprite;   
import flash.display.BlendMode;  //混合模式类  
import flash.events.*;   //事件类
import flash.media.Sound;    //声音类
import flash.media.SoundMixer;  //混音器类  
import flash.media.SoundChannel; //声道类   
import flash.net.URLRequest;    //URLRequest类
import flash.utils.ByteArray;   //ByteArray类
import flash.display.Bitmap; //位图类
import flash.display.BitmapData;
import flash.filters.BlurFilter; //滤镜类
import flash.filters.ColorMatrixFilter;  
import flash.filters.BitmapFilterQuality;  //滤镜品质类
import flash.geom.Rectangle;    //矩形类
import flash.geom.Point;  //Point类(点)
Stage.showDefaultContextMenu = false;
        //声明用来包含line和bg的Sprite
var Main:Sprite=new Sprite();
        //声明用来画线的Sprite
var line:Sprite=new Sprite();
        //声明用来放位图数据的BitmapData
var bmpData:BitmapData=new BitmapData(350,200,true,0xFF0000);
        //声明用来显示效果的Bitmap
var bmp:Bitmap=new Bitmap(bmpData);
        //声明一个ByteArray对象
var bArray:ByteArray = new ByteArray();
        //声明一个数组对象
var Ary:Array;
        //声明两个数字对象
var n:Number = 0;
var c:Number = 0;
        //声明一个ColorMatrix滤镜
var colorM:ColorMatrixFilter=new ColorMatrixFilter([0.98,0,0,0,0,0,0.98,0,0,0,0,0,0.98,0,0,0,0,0,0.90,0,]);
        //声明一个BlurFilter滤镜
var blur:BlurFilter = new BlurFilter(7,7,BitmapFilterQuality.LOW);
        //声明一个矩形
var r:Rectangle=new Rectangle(0,0,350,200);
        //声明一个点
var point=new Point(0,0);      
function showBar1(event:Event):void{
        n = 0;
        //这里是为了每2次才执行一次滤镜而做的if,如果需要让原来的波形图消失的更慢就把2改成更大的数字
        if(c%2==0){
        //将Main的内容绘制到bmpData
        bmpData.draw(Main);
        //应用滤镜
        bmpData.applyFilter(bmpData,r,p,colorM);
        bmpData.applyFilter(bmpData,r,p,blur);
        }
        c++;
        //清除绘图
        line.graphics.clear();
        //设置线条样式,颜色green,宽度1,透明度100
        line.graphics.lineStyle(1,0x00CC00,100);
        //将当前声音输出为ByteArray,注意哦,这次用的是false,上次是true
        SoundMixer.computeSpectrum(bArray,false,0);
        for(var i=0; i<256; i+=2){
                //在ByteArray中读取一个32位的单精度浮点数
                n = bArray.readFloat();
                //这个实际作用是把n扩大一下
浏览上一页 共3页 1 [2] [3] 浏览下一页
上一篇卡通人物手脚的绘画方法和技巧   下一篇手把手教你做闪烁文字
[发表/查看评论↓↑] ↑返回顶部   打印本页   关闭窗口↓ 

 最新评论

手把手教你做闪烁文字
一个极有真实感的放大镜制
Flash制作精彩“时空穿梭
卡通人物眼睛表现手法:美
手把手教你做闪烁
一个极有真实感的
Flash制作精彩“
卡通人物眼睛表现
玩转Flash AS 3D
Flash制作精彩的
体验Adobe Flash
手绘人物头像+简
Adobe Flash CS3蓄势
用Flash 8.0轻松打造
flash遮罩特效实例精
在网页中插入FLV播放
逐渐出现的马赛克遮照
flash的loading 的详
鼠标悬停信息提示
点线形弹性菜单制作(A
手把手教你做闪烁文字
一个极有真实感的放大镜制
Flash制作精彩“时空穿梭
卡通人物眼睛表现手法:美
手把手教你做闪烁
一个极有真实感的
Flash制作精彩“
卡通人物眼睛表现
玩转Flash AS 3D
Flash制作精彩的
体验Adobe Flash
手绘人物头像+简
Adobe Flash CS3蓄势
用Flash 8.0轻松打造
flash遮罩特效实例精
用flash+javascript实
在网页中插入FLV播放
使用php的zlib压缩和
Flash弹性效果的制作
逐渐出现的马赛克遮照
[ 五颜六色网 ]
Copyright © 2003-2006 5y6s.net
Version 2.0.1 苏ICP备05001866号 All rights reserved