Code:
package com.company.assembleegameclient.sound {
import com.company.assembleegameclient.parameters.Parameters;
public class Music {
private static var originalMusic:String;
private static var music_:SwitchMusic;
public static function load():void {
}
public static function chooseMusic(music:String):void {
if (originalMusic == music) return;
originalMusic = music;
if (music_) {
music_.fadeOut();
}
music_ = new SwitchMusic();
music_.switchMusic(music);
music_.fadeIn();
}
public static function setPlayMusic(_arg_1:Boolean):void {
Parameters.data_.playMusic = _arg_1;
Parameters.save();
}
public static function setMusicVolume(_arg_1:Number):void {
Parameters.data_.musicVolume = _arg_1;
Parameters.save();
if (!Parameters.data_.playMusic) {
return;
}
music_.changeVolume(_arg_1);
}
}
}//package com.company.assembleegameclient.sound
You can also remove the load function and all places that it gets called from if you wish (and know how to).
Code:
package com.company.assembleegameclient.sound {
import com.company.assembleegameclient.parameters.Parameters;
import com.gskinner.motion.GTween;
import flash.events****ErrorEvent;
import flash.media.Sound;
import flash.media.SoundChannel;
import flash.media.SoundTransform;
import flash.net.URLRequest;
import kabam****tmg.application.api.ApplicationSetup;
import kabam****tmg.core.StaticInjectorContext;
public class SwitchMusic {
private var music:Sound;
private var musicChannel:SoundChannel;
private var musicTransform:SoundTransform;
private var gT:GTween;
public function switchMusic(musicName:String):void {
var appSetup:ApplicationSetup = StaticInjectorContext.getInjector().getInstance(ApplicationSetup);
var musicPath:String = appSetup.getAppEngineUrl(true) + "/music/";
music = new Sound();
music.addEventListener(IOErrorEvent****_ERROR, defaultMusic);
musicTransform = new SoundTransform(0);
gT = new GTween(musicTransform);
gT.onChange = updateVolume;
music.load(new URLRequest(musicPath + musicName + ".mp3"));
}
public function fadeIn():void {
gT.duration = 3;
gT.setValue("volume", Parameters.data_.musicVolume);
musicChannel = music.play(0, int.MAX_VALUE, musicTransform)
}
public function fadeOut():void {
gT.onComplete = stopChannel;
gT.setValue("volume", 0)
}
public function changeVolume(volume:Number):void {
musicTransform.volume = volume;
musicChannel.soundTransform = musicTransform;
}
private function updateVolume(gtween:GTween):void {
musicChannel.soundTransform = musicTransform;
}
private function stopChannel(gtween:GTween):void {
musicChannel.stop();
}
private static function defaultMusic(_arg_1:IOErrorEvent):void {
Music.chooseMusic("default");
}
}
}
Follow this image to fix the '****' symbols.