0
我有一個播放一些聲音(flash遊戲)的swf文件,很遺憾沒有靜音功能。我沒有fla文件,所以我可以' t更改或添加靜音按鈕。是否有任何JavaScript或SWF來控制外部聲音as2 swf
swf是通過嵌入src/swfobject.js實現的 有沒有辦法讓這個外部swf文件靜音? 也許通過外部JS函數或其他可以控制game.swf的swf文件? game.swf被編譯爲AS2。
我有一個播放一些聲音(flash遊戲)的swf文件,很遺憾沒有靜音功能。我沒有fla文件,所以我可以' t更改或添加靜音按鈕。是否有任何JavaScript或SWF來控制外部聲音as2 swf
swf是通過嵌入src/swfobject.js實現的 有沒有辦法讓這個外部swf文件靜音? 也許通過外部JS函數或其他可以控制game.swf的swf文件? game.swf被編譯爲AS2。
如果您無法訪問AS2 swf源,那麼我不認爲有直接的方法可以做到這一點,但是您可以通過創建自己的wrapper.swf來在其中加載game.swf 。這個wrapper.swf然後可以控制game.swf中的全局聲音,並且可以從可以控制聲音的位置打開JavaScript的方法。
我會建議你在AS3中做你的包裝,好吧,它使得更容易。 AS2是比較可怕的。
我已經提出了一些基本代碼,加載一個外部的瑞士法郎,用一個簡單的按鈕來切換包裝內的所有聲音 - 包括加載的瑞士法郎。
import flash.text.TextField;
import flash.media.SoundMixer;
var req:URLRequest = new URLRequest("playsound.swf");
var loader:Loader = new Loader();
loader.load(req);
var btn:TextField = new TextField();
btn.text = "Toggle Sound";
btn.mouseEnabled = true;
btn.buttonMode = true;
btn.addEventListener(MouseEvent.CLICK, handleClick);
this.addChild(btn);
var amMuted:Boolean = false;
function handleClick(e) {
if (amMuted) {
amMuted = false;
SoundMixer.soundTransform = new SoundTransform(0);
} else {
amMuted = true;
SoundMixer.soundTransform = new SoundTransform(1);
}
}
你可以或者只要致電:
如果您想要靜音的一切SoundMixer.stopAll()
。
如果你想測試這裏的princple是一個示例AS2的SWF播放通用的重複的聲音:
song = new Sound();
song.loadSound("http://users.skynet.be/fa046054/home/P22/track39.mp3", true);
song.onLoad = function(success:Boolean) {
if (success) {
song.start();
} else {
// fail
}
}
// replay
song.onSoundComplete = function() {
song.start();
}
確定感謝您的幫助,由於這樣的事實,我不是閃存編程,做ü知道良好的來源,我可以找到這種包裝的更多細節? – Sascha
@Sascha沒問題,我用一些示例代碼擴展了上面的答案。請注意,這不會將swf添加到舞臺上,只是從內存中播放它。 – Visualife
@Sascha是否已經解決了上述問題,或者您需要進一步的幫助? – Visualife