查看: 2577|回复: 3
打印 上一主题 下一主题

[Flare3D]3D声谱,附源码,及在线演示!

[复制链接]

1446

主题

3

听众

2万

积分

资深设计师

Rank: 7Rank: 7Rank: 7

纳金币
30927
精华
3

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

跳转到指定楼层
楼主
发表于 2012-9-26 15:01:40 |只看该作者 |倒序浏览
package {

import flash.display.Sprite;
import flash.media.*;
import flash.net.*;
import flash.events.*;
import flash.geom.Vector3D;
import flare.basic.Scene3D;
import flare.basic.Viewer3D;
import flare.core.Lines3D;
import flare.core.Camera3D;
import flash.utils.ByteArray;
import flash.text.*;

[SWF(width=800,height=600,frameRate=20)]
public class soundWave extends Sprite {
var scene:Scene3D;
var lineArr1:Array;
var lineArr2:Array;
var tempPtArr:Array;

var moArr:Array;
var ptArr:Array;
var soundByte:ByteArray;

var sound:Sound;
var soundCh:SoundChannel;

public function soundWave() {
scene=new Viewer3D(this);
scene.camera=new Camera3D();
scene.camera.setPosition(-100,130,-200);
scene.camera.lookAt(0,0,0);
init();

var txt:TextField=new TextField();
var txtFormat:TextFormat=new TextFormat(null,20,0xff0000);
txt.text="按下鼠标左键 拖动,可以旋转视角";
txt.setTextFormat(txtFormat);
txt.autoSize=TextFieldAutoSize.LEFT;
addChild(txt);
}
private function init(){
buildMesh();
}
private function buildMesh(){
ptArr=new Array();
for(var i=0;i<128;i++){
var temptArr:Array=new Array();
for(var a=0;a<32;a++){
var pt:Vector3D=new Vector3D(i*5-160,0,a*5-80);
temptArr.push(pt);
}
ptArr.push(temptArr);
}
buildLines();
moArr=new Array();
for(var v=0;v<32;v++){
var moPt:Vector3D=ptArr[0][v].clone();
moArr.push(moPt);
}
}
private function buildLines(){
lineArr1=new Array();
lineArr2=new Array ();
for(var i=0;i<128;i++){
var line1ines3D=new Lines3D();
line1.lineStyle(1,0x33ffff);
line1.moveTo(ptArr[0].x,ptArr[0].y,ptArr[0].z);
for(var a=0;a<32;a++){
line1.lineTo(ptArr[a].x,ptArr[a].y,ptArr[a].z)
}
scene.addChild(line1);
lineArr1.push(line1);
}
for(var p=0;p<32;p++){
var line2ines3D=new Lines3D();
line2.lineStyle(1,0x33ffff);
line2.moveTo(ptArr[0][p].x,ptArr[0][p].y,ptArr[0][p].z);
for(var u=0;u<128;u++){
line2.lineTo(ptArr[p].x,ptArr[p].y,ptArr[p].z);
}
scene.addChild(line2);
lineArr2.push(line2);
}
playSound();
//buildLines2();
}
private function buildLines2(){
for(var i=0;i<128;i++){
var line1ines3D=new Lines3D();
line1.lineStyle(1,0x33ffff);
line1.moveTo(ptArr[0].x,ptArr[0].y,ptArr[0].z);
for(var a=0;a<32;a++){
line1.lineTo(ptArr[a].x,ptArr[a].y,ptArr[a].z)
}
scene.addChild(line1);
}
for(var p=0;p<32;p++){
var line2ines3D=new Lines3D();
line2.lineStyle(1,0x33ffff);
line2.moveTo(ptArr[0][p].x,ptArr[0][p].y,ptArr[0][p].z);
for(var u=0;u<128;u++){
line2.lineTo(ptArr[p].x,ptArr[p].y,ptArr[p].z);
}
scene.addChild(line2);
}

}
private function playSound(){
sound=new Sound(new URLRequest("Kalimba.mp3"));
soundCh=sound.play();
soundByte=new ByteArray();
stage.addEventListener(Event.ENTER_FRAME,onFrame);
}
private function onFrame(e){
SoundMixer.computeSpec***m(soundByte);
var tempPtArr:Array=new Array ();
for(var i=0;i<32;i++){
var pt:Vector3D=new Vector3D();
pt.x=-160;
pt.z=i*5-80;
pt.y=Math.abs(soundByte.readFloat())*50;
tempPtArr.push(pt);
}
for(var c=0;c<128;c++){
for(var w=0;w<32;w++){
ptArr[c][w].x+=5;
}
}
ptArr.unshift(tempPtArr);
ptArr.pop();
for(var d=0;d<128;d++){
lineArr1[d].clear();
}
for(var f=0;f<32;f++){
lineArr2[f].clear();
}
for(var h=0;h<32;h++){
lineArr2[h].moveTo(ptArr[0][h].x,ptArr[0][h].y,ptArr[0][h].z);
for(var j=0;j<128;j++){
lineArr2[h].lineTo(ptArr[j][h].x,ptArr[j][h].y,ptArr[j][h].z);
}
}
for(var k=0;k<128;k++){
lineArr1[k].moveTo(ptArr[k][0].x,ptArr[k][0].y,ptArr[k][0].z);
for(var l=0;l<32;l++){
lineArr1[k].lineTo(ptArr[k][l].x,ptArr[k][l].y,ptArr[k][l].z);
}
}

}
}

}

http://1552951214.sinaapp.com/soundWave.html  在线演示地址
分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

2508

主题

2

听众

3万

积分

资深设计师

Rank: 7Rank: 7Rank: 7

纳金币
32806
精华
12

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

沙发
发表于 2012-11-2 09:22:03 |只看该作者
回复

使用道具 举报

无效楼层,该帖已经被删除

0

主题

1

听众

2458

积分

中级设计师

Rank: 5Rank: 5

纳金币
0
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

地板
发表于 2014-2-22 22:13:46 |只看该作者

谢谢分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2025-1-11 09:49 , Processed in 0.059163 second(s), 28 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部