ОК, так как у меня были ужасные попытки зациклить аудиоисточник на основе документации и небольшого количества помощи в Интернете, я решил создать свою собственную библиотеку дополнений Standing Wave 3. Он не идеален, но он выполняет свою работу, и в этом отношении на уровне байтов; Никаких таймеров цикла или чего-то еще. Он работает, беря звук с начальной и конечной точками цикла. Затем он клонирует выборку цикла несколько раз в зависимости от времени, указанного в секундах. Это должно быть прямо в использовании. Это код для класса Main.as в
"зацикливающийся" файл в папке "examples":
package
{
// Imports.
import com.greensock.events.LoaderEvent;
import com.greensock.loading.LoaderMax;
import com.greensock.loading.MP3Loader;
import flash.display.Sprite;
import flash.events.Event;
import com.greensock.TweenMax;
import com.SW3.gadget.LoopGadget;
import flash.media.Sound;
// Class.
public class Main extends Sprite
{
// Vars.
private var loader:LoaderMax;// Using LoaderMax for ease of use.
// Constructor.
public function Main()
{
trace("Main");
loader = new LoaderMax( { name:"audio", onComplete:onSoundsLoaded } );
loader.append( new MP3Loader( "assets/Beat.mp3", { autoPlay:false } ) );
loader.append( new MP3Loader( "assets/Clap.mp3", { autoPlay:false } ) );
loader.append( new MP3Loader( "assets/Boom.mp3", { autoPlay:false } ) );
loader.load();
}
private function onSoundsLoaded(e:LoaderEvent):void
{
trace("onSoundsLoaded");
var looping:LoopGadget = new LoopGadget;
looping.addLoopSound( "Beat", e.currentTarget.content[ 0 ] as Sound, 0, 10 );
looping.addLoopSound( "Clap", e.currentTarget.content[ 1 ] as Sound, 0, 10 );
//looping.addLoopSound( "Boom", e.currentTarget.content[ 2 ] as Sound, 0, 10 ); // Commented out to test possible error.
looping.playLoop( "Beat" );// Play the "Beat" loop.
looping.playLoop( "Clap" );// Play the "Clap" loop.
looping.stopLoop( "Beat" );// Stop the "Beat" loop.
looping.playLoop( "Beat" );// Play the "Beat" loop.
looping.playLoop( "Beat" );// Play the "Beat" loop again to test if it would error out..
looping.stopAllLoops();// Stop all the loops.
looping.playLoops( [ "Beat", "Clap", "Boom" ] );// Play all the loops. Test to see if "Boom" will error out.
}
}
}
Проверьте исходные файлы здесь:
https://github.com/charlesclements/standingwave3-addons