Треск появляется при затухании звука as3
Я использую tweenlite для затухания звука, сам эффект затухания работает хорошо, но кажется, что каждый раз, когда soundTransform применяется к soundChannel с tweenlite, появляется некоторый шум, похожий на треск.
Вы можете проверить это здесь
И вот код:
package {
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.media.Sound;
import flash.media.SoundChannel;
import flash.media.SoundTransform;
import com.greensock.*;
import com.greensock.plugins.*;
TweenPlugin.activate([VolumePlugin]);
public class SoundFade extends Sprite {
public var keySound:Sound;
public var keySoundChannel:SoundChannel;
public var keySoundTransform:SoundTransform;
public function SoundFade():void {
keySound = new MySound();
keySoundChannel = new SoundChannel();
btn.addEventListener(MouseEvent.CLICK, onClick);
}
private function onClick(e:MouseEvent):void {
keySoundChannel = keySound.play();
TweenLite.to(keySoundChannel, 0.5, {
volume: 0
});
}
}
}
У кого-нибудь есть идеи, как обойти эту проблему?
Я верю, что вы, ребята, можете помочь мне с этой проблемой. Заранее спасибо.
1 ответ
Я не мог слушать, так как ссылка не работает, но из того, что я знаю, появляются трещины при очень быстром переходе от высокой (или низкой) громкости к низкой (или высокой) громкости. Это происходит потому, что вы изменяете форму волны на лету, и она становится прерывистой.
Я вижу, что вы используете TweenLite, и это хорошее начало. Я считаю, что если вы увеличите продолжительность анимации, трещины исчезнут.
Имейте в виду, что по умолчанию в TweenLite по умолчанию указывается Quad.easeOut, поэтому затухание не является линейным, поэтому трещины могут появиться там, где переход быстрее! Также может помочь изменение легкости на "Linear.easeNone".