2010-10-06 30 views
9

Tôi đang cố gắng làm mờ dần trong/ra trong một bản nhạc trong dự án Flash (CS5). Tôi nhập khẩu các âm thanh vào thư viện, thiết lập một classname cho "Export for ActionScript", và tôi đã cố gắng để phai với TweenLite/TweenMax, như thế này:Âm thanh mờ dần vào/ra với ActionScript 3

var sound = new MySound(); 
sT = new SoundTransform(0.1); 
sound.play(0,99999, c_sndEnvironment); 
TweenLite.to(sound, 1, {volume: 1.0}); 

Nhưng nó chỉ không hoạt động. Tôi đã cố gắng để nhập khẩu các plugin khối lượng trên TweenLite, và vẫn không có gì. Tôi không có lỗi gì cả.

Tôi có làm gì sai không?

Ngoài ra, có thư viện AS3 tốt (hoàn chỉnh) nào cho âm nhạc không?

Cảm ơn bạn. :)

Trả lời

13

tôi sử dụng TweenMax cho điều này, nó khá đơn giản

 
var someSound:Sound = new Sound(new URLRequest(“MySound.mp3″)); 
var someChannel:SoundChannel = someSound.play(0, 99999); 
TweenMax.to(someChannel, 1, {volume:0, onComplete:stopSound}); 

http://www.greensock.com/tweenmax/

+1

Wow! Cảm ơn bạn. Tại sao điều này làm việc với TweenMax chứ không phải TweenLite? hehe :) – CrociDB

+0

bởi vì bạn áp dụng tween cho âm thanh, không phải là soundChannel;) – PatrickS

+1

Tôi không biết GreenSock có thể làm điều này. Cảm ơn bạn. –

5

Patricks là đúng về thực tế là bạn nên Tween thể tích của SoundChannel, không phải là âm thanh riêng của mình. TweenMax tự động kích hoạt các VolumePlugin (cùng với một số người khác), nhưng bạn có thể làm điều đó bằng tay cho TweenLite như:

import com.greensock.*; 
import com.greensock.plugins.*; 
TweenPlugin.activate([VolumePlugin]); //only necessary once 

var someChannel:SoundChannel = someSound.play(0, 99999); 
TweenLite.from(someChannel, 1, {volume:0}); 

Đối với những gì nó có giá trị, bạn cũng có thể muốn kiểm tra LoaderMax trong đó có một lớp MP3Loader mà làm cho làm việc với âm thanh bên ngoài dễ dàng hơn. Nó có thuộc tính "volume" riêng của nó mà bạn có thể tween quá. http://www.greensock.com/loadermax/

1

xin lỗi, tôi là loại hành vi lạ từ những dòng mã này. Âm thanh của tôi biến mất và ngược lại. sau khi soundchannel có cùng âm lượng như trước, onComplete được thực hiện bình thường. Bất kỳ ý tưởng?

themeChannel = sndTheme.play(0, 99999); TweenLite.from(themeChannel, 2, {volume:0,onComplete:stopTheme});

// sửa: Tôi đã nhận nó làm việc bằng cách Tweening một Object SoundTransform:

var themeTransform:SoundTransform = new SoundTransform(1); 
themeChannel = sndTheme.play(0, 99999, themeTransform); 
TweenLite.from(themeTransform, 3, {volume:0,onUpdate:updateSound,onComplete:stopTheme}); 

function updateSound():void{ 
      themeChannel.soundTransform = themeTransform; 
     } 

nhờ: http://www.zedia.net/2008/fading-out-volume-using-tweenlite/

Các vấn đề liên quan