【发布时间】:2015-02-14 05:53:37
【问题描述】:
我正在尝试在 actionscript 3 中进行死亡检测。我的想法是在 x 轴上创建一个点数组(MovieClips),它代表频谱,SoundMixer.computeSpectrum(bytes, true, 0);设置为真。如何访问我的数组的第一个点实例。然后我想检查它在每个当前帧上的最大值,并根据最后一个值进行测量。我想我需要设置一个阈值,当该值在阈值范围内时,就叫它节拍....我迷路了,谁能指出我正确的方向..
提前致谢。
var snd: Sound = new Sound();
var req: URLRequest = new URLRequest("mySong.mp3");
snd.load(req);
var channel: SoundChannel;
channel = snd.play();
addEventListener(Event.ENTER_FRAME, onEnterFrame);
snd.addEventListener(Event.SOUND_COMPLETE, onPlaybackComplete);
const CHANNEL_LENGTH: int = 256;
const BUFFER_LENGTH: int = 512;
var dot:Dot;
dot.cacheAsBitmap = true;
var myArray:Array = new Array();
var bytes:ByteArray = new ByteArray();
function onEnterFrame(event: Event): void
{
SoundMixer.computeSpectrum(bytes, true, 0);
for (var i:int = 0; i < CHANNEL_LENGTH; i+=8) // channel_length = 256
{
var sampleValue:Number = bytes.readFloat();
dot = new Dot();
dot.x = i * 2;
dot.y = sampleValue * 250; //50 + (i * 30)
addChild(dot);
myArray.push(dot);
}
}
【问题讨论】:
-
你要不要
myArray[0]? -
嗨,Marty...我确实尝试过,但似乎没有用。我会再试一次。当我执行 myArray.length 时,它会返回 1 或 0 .. 这似乎不对。 myArray.length 不应该还给我 256 吗?感谢您的回复。我会在靠近后立即回复。
标签: arrays actionscript-3 beat-detection