gpt4 book ai didi

actionscript-3 - AS3如何扩宽声波?

转载 作者:行者123 更新时间:2023-12-03 00:20:46 25 4
gpt4 key购买 nike

我正在实现这个代码来绘制声波。它位于 soundmixer 的 adobe livedocs 中.我的问题是如何扩大声波?例如,我希望它是 655 像素。我可以将其更改为绘制到不同的 channel ,也可以更改绘图的高度,但找不到如何更改整个绘图的宽度

知道怎么做吗?

谢谢。

  package {
import flash.display.Sprite;
import flash.display.Graphics;
import flash.events.Event;
import flash.media.Sound;
import flash.media.SoundChannel;
import flash.media.SoundMixer;
import flash.net.URLRequest;
import flash.utils.ByteArray;
import flash.text.TextField;

public class SoundMixer_computeSpectrumExample extends Sprite {

public function SoundMixer_computeSpectrumExample() {
var snd:Sound = new Sound();
var req:URLRequest = new URLRequest("Song1.mp3");
snd.load(req);

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

private function onEnterFrame(event:Event):void {
var bytes:ByteArray = new ByteArray();
const PLOT_HEIGHT:int = 25;
const CHANNEL_LENGTH:int = 256;

SoundMixer.computeSpectrum(bytes, false, 0);

var g:Graphics = this.graphics;

g.clear();

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

var n:Number = 0;

for (var i: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();

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();
}

private function onPlaybackComplete(event:Event):void {
removeEventListener(Event.ENTER_FRAME, onEnterFrame);
}
}
}

最佳答案

更改 lineTo(x,y) 调用中的 x 因子。

例如,更改:

g.lineTo(i * 2, PLOT_HEIGHT - n);

类似于:
var xfactor:Number = 655/256;
g.lineTo(i * xfactor, PLOT_HEIGHT - n);

由于 xfactor 是固定的,请在进入循环之前计算它(不在循环内(

关于actionscript-3 - AS3如何扩宽声波?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7529284/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com