2015-09-08 8 views
0

У меня есть swf-файл, который воспроизводит некоторые звуки (флеш-игра), к сожалению, нет встроенной функции mute. У меня нет файла fla, t изменить или добавить кнопку отключения звука.есть ли javascript или swf для управления звуком на внешнем as2 swf

SWF реализован через встроенный src/swfobject.js Есть ли способ отключить этот внешний SWF-файл? Может быть, через внешнюю функцию JS или дополнительный файл swf, который может управлять game.swf? game.swf скомпилирован AS2.

ответ

0

Если у вас нет доступа к источнику swf AS2, то я не верю, что есть прямой способ сделать это, но вы можете сделать обходной путь, создав свой собственный wrapper.swf, в котором нужно загрузить game.swf , Этот wrapper.swf мог бы контролировать глобальный звук в game.swf и мог бы открыть методы для Javascript, откуда вы могли бы управлять звуком.

Я бы посоветовал сделать вашу обертку в AS3 как, ну, это упростит. AS2 ужасно по сравнению.

Я установил базовый код ниже, который загружает внешний swf с помощью простой кнопки, которая переключает весь звук внутри оболочки, включая загруженные swf.

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(); 
} 
+0

ки спасибо за помощь, в связи с тем, что я не прошить программист, делать и знать хороший источник, где я могу найти более подробную информацию для такой оболочки? – Sascha

+0

@ Sascha не проблема, я расширил ответ выше с помощью некоторого примера кода. Обратите внимание, что это не добавляет swf на сцену, просто воспроизводит ее из памяти. – Visualife

+0

@ Sascha все это решило вашу проблему или вам нужна дополнительная помощь? – Visualife

 Смежные вопросы

  • Нет связанных вопросов^_^