设为首页收藏本站
鲜花(3) 鸡蛋(0)
发表于 2015-6-23 20:16 | 显示全部楼层 |阅读模式

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

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

x
红尘哥哥舞会签名.jpg
无尊.jpg

鲜花(2165) 鸡蛋(3)
发表于 2015-6-23 22:19 | 显示全部楼层
鲜花(3) 鸡蛋(0)
 楼主| 发表于 2015-6-26 20:14 | 显示全部楼层
鲜花(2165) 鸡蛋(3)
发表于 2015-6-26 21:17 | 显示全部楼层
鲜花(3) 鸡蛋(0)
 楼主| 发表于 2015-6-28 00:15 | 显示全部楼层
鲜花(3) 鸡蛋(0)
 楼主| 发表于 2015-7-6 12:07 | 显示全部楼层
本帖最后由 笑看红尘 于 2015-7-16 20:40 编辑

鲜花(3) 鸡蛋(0)
 楼主| 发表于 2015-7-6 21:11 | 显示全部楼层
function EncodeUtf8(str:String):String { var oriByteArr:ByteArray = new ByteArray(); oriByteArr.writeUTFBytes(str); var tempByteArr:ByteArray = new ByteArray(); for (var i = 0; i
鲜花(3) 鸡蛋(0)
 楼主| 发表于 2015-7-6 21:11 | 显示全部楼层
function EncodeUtf8(str:String):String {

var oriByteArr:ByteArray = new ByteArray();

oriByteArr.writeUTFBytes(str);

var tempByteArr:ByteArray = new ByteArray();

for (var i = 0; i<oriByteArr.length; i++) {

  if (oriByteArr == 194) {

   tempByteArr.writeByte(oriByteArr[i+1]);

   i++;

  } else if (oriByteArr == 195) {

   tempByteArr.writeByte(oriByteArr[i+1] + 64);

   i++;

  } else {

   tempByteArr.writeByte(oriByteArr);

  }

}

tempByteArr.position = 0;

return tempByteArr.readMultiByte(tempByteArr.bytesAvailable,"chinese");

}
鲜花(3) 鸡蛋(0)
 楼主| 发表于 2015-7-6 21:12 | 显示全部楼层
package net.cdipan.spectrum{ import flash.display.Sprite; import flash.utils.ByteArray; import flash.text.TextField; import flash.events.MouseEvent; import flash.net.navigateToURL; import flash.net.URLRequest; public class Spectrum extends Sprite { //记录频谱的数组 private var _spectrum:Array; //记录显示的类型 private var _type:int; //用于显示频谱的精灵对象 private var _showSpectrum:Sprite; //用于显示柱状频谱的精灵对象 private var _show1:Sprite; //用于显示波浪频谱的精灵对象 private var _show2:Sprite; //用于显示波形频谱的精灵对象 private var _show3:Sprite; //柱形对象 private var _column:Column; //波形对象 private var _waveform:Waveform; public function Spectrum():void { _spectrum = new Array(512); _showSpectrum = new Sprite(); _showSpectrum.x = 22; _showSpectrum.y = 18; _show1 = new Sprite(); _show2 = new Sprite(); _show3 = new Sprite(); this.addChild(_showSpectrum); //创建柱状频谱 createColumn(64,3,1,_show1); createColumn(256,1,0,_show2); //创建波形频谱 _waveform = new Waveform(); _show3.addChild(_waveform); _showSpectrum.addChild(_show1); } //获取频谱数组 public function getSpectrum(byteArray:ByteArray):void { for (var i:int=0; i<512; i++) { _spectrum = byteArray.readFloat(); } //将频谱数据传送给柱状和波浪的精灵实例 for (var j:int=0; j<64; j++) { var temp1:Column = _show1.getChildByName("column_"+j.toString()) as Column; temp1.getSpectrum((_spectrum[j*4]+_spectrum[j*4+1]+_spectrum[j*4+2]+_spectrum[j*4+3]+_spectrum[j*4+256]+_spectrum[j*4+257]+_spectrum[j*4+258]+_spectrum[j*4+259])*12.5); } for (var m:int=0; m<256; m++) { var temp2:Column = _show2.getChildByName("column_"+m.toString()) as Column; temp2.getSpectrum((_spectrum[m]+_spectrum[m+256])*50); } //将频谱数据传送给波形的精灵实例 _waveform.getSpectrum(_spectrum); } //创建柱状的精灵对象 private function createColumn(f_num:int,f_width:int,f_space:int,target:Sprite):void { for (var i:int=0; i
鲜花(3) 鸡蛋(0)
 楼主| 发表于 2015-7-6 21:15 | 显示全部楼层
package net.cdipan.spectrum{ import flash.display.*; import flash.filters.*; import flash.geom.*; public class Waveform extends Sprite { //线条颜色 private const line_color:uint = 0x07f7ff; //创建用来绘制线条的精灵对象 private var Line:Sprite; //用于逐渐消失的轨迹的位图对象 private var bmpData:BitmapData; private var bmp:Bitmap; //滤镜的各项参数 private var colorM:ColorMatrixFilter; private var blur:BlurFilter; private var r:Rectangle; private var point; //通过数字使滤镜处理慢一步 private var num:int; public function Waveform():void { Line = new Sprite(); bmpData = new BitmapData(256,100,true,0); bmp = new Bitmap(bmpData); colorM = new ColorMatrixFilter([.98,0,0,0,0,0,.98,0,0,0,0,0,.98,0,0,0,0,0,.5,0]); blur = new BlurFilter(7,7,BitmapFilterQuality.LOW); r = new Rectangle(0,0,256,100); p = new Point(0,0); //添加显示对象 this.blendMode=BlendMode.ADD; this.addChild(bmp); this.addChild(Line); } //接收频谱数据 public function getSpectrum(array:Array):void { if (num%2 == 0) { var m:Number = 0; for (var j=0; j<256; j+=2) { m += array[j]; } if (m != 0) { //停止播放时不绘制图像,就只会显示一条直线 bmpData.draw(this); } bmpData.applyFilter(bmpData,r,p,colorM); bmpData.applyFilter(bmpData,r,p,blur); } num++; Line.graphics.clear(); Line.graphics.lineStyle(1,line_color,100); for (var i=0; i<256; i+=2) { var n:Number = array*50; if (i != 0) { Line.graphics.lineTo(i,50-n); } else { Line.graphics.moveTo(0,50-n); } } } } }
您需要登录后才可以回帖 登录 | 注册

本版积分规则


GMT+8, 2024-4-30 03:10 , Processed in 0.045431 second(s), 20 queries , Gzip On, Redis On.


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