Я пытаюсь синхронизировать анимацию с музыкой на конкретном BPM. Я пытался использовать таймер, но он не точен при работе с небольшими интервалами в миллисекундах. Я немного почитал и нашел альтернативный метод, который использует небольшой аудиофайл и событие SOUND_COMPLETE в качестве таймера.
Я использовал звуковой файл длиной 167 мс с этим кодом.
package
{
import flash.events.Event;
import flash.events.EventDispatcher;
import flash.media.Sound;
import flash.media.SoundChannel;
import flash.net.URLRequest;
public class BetterTimer extends EventDispatcher
{
private var silentSound:Sound;
public function BetterTimer(silentSoundUrl:String):void {
super();
silentSound = new Sound( new URLRequest(silentSoundUrl) );
silentSound.addEventListener(Event.COMPLETE, start);
}
public function start():void {
this.timerFired( new Event("start") );
}
private function timerFired(e:Event):void {
dispatchEvent( new Event("fire") );
var channel:SoundChannel = silentSound.play();
channel.addEventListener(Event.SOUND_COMPLETE, timerFired, false, 0, true);
}
}
}
Это все еще не остается в ударе. Способен ли Flash Player воспроизводить звук со звуком?