Справочная информация:
В настоящее время я пытаюсь создать частотный визуализатор для музыки с использованием Flash и AS3 (по разным причинам). Я совершенно новичок в AS3, несколько новичок во Flash, но имею некоторый опыт работы с javascript, который очень помог мне добраться туда, где я нахожусь. В любом случае, у меня есть этот код, который я изменил из учебника по созданию полос для амплитуды каждого диапазона частот.
Однако, поскольку я хочу, чтобы он работал в первую очередь, я использовал, вероятно, наименее эффективный способ расчета каждого столбца.
Код:
import flash.media.Sound;
import flash.net.URLRequest;
import flash.events.Event;
import flash.utils.ByteArray;
import flash.display.FrameLabel;
var s:Sound = new Sound(new URLRequest("Mix 1 v4.mp3"));
s.play(0, 1);
var ba:ByteArray = new ByteArray();
addEventListener(Event.ENTER_FRAME, loop);
function loop(e:Event):void {
graphics.clear();
graphics.beginFill(0xFFFF00);
graphics.drawRect(0, 502, 1280, 4);
SoundMixer.computeSpectrum(ba, true);
for (var i:uint=0; i<256; i+=8) {
if (i<=8) {
var num:Number = -ba.readFloat()*250;
graphics.beginFill(0xFFFF00);
graphics.drawRect(110, 500, 32, num);
}
if (i>8 && i<=16) {...
И код продолжает увеличивать каждый оператор if на 8 и каждый drawRect (110 (34 * x), 500 ...)
Я ищу способ сделать computeSpectrum и ByteArray «глобальными» и автоматически рисовать графику для каждого раздела значений частоты вместо 32 экземпляров if (i> 32 && i ‹= 40) {.. .
В общем, этот код работает. Но это определенно неверно, по крайней мере, исходя из моего ограниченного опыта (я полагаю, это, вероятно, заставит некоторых из вас съежиться).
Я понимаю, что, вероятно, есть способ упростить это, но трудно понять, с чего начать, и неприятно отлаживать, когда вы не знаете, что делаете (я уверен, что мы все были там в какой-то момент )
Я буду работать над тем, чтобы придумать собственное решение, но был бы очень рад получить некоторые рекомендации по этому вопросу.
Спасибо
FFT =
true и false (время и частота доменов). И да, потеряйтеif
утверждения (ненужные вычисления) - person VC.One   schedule 10.04.2014