我有一个文件,我没有源 - 一个带有令人讨厌的声音介绍的闪光标题,我需要将所有声音静音。如果没有来源,我的能力就会受到限制。我有一些as3代码,我正在尝试将swf加载到静音(在FlashDevelop中构建)。以下是有问题的代码:
package
{
import flash.display.MovieClip;
import flash.display.Sprite;
import flash.events.Event;
import flash.media.SoundTransform;
import flash.net.URLRequest;
import flash.display.Loader;
import flash.media.SoundTransform;
public class Main extends Sprite
{
private var mLoader:Loader;
private var mc1:MovieClip;
private var holder:Sprite;
private var mSound:SoundTransform;
public function Main():void
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event = null):void
{
var mRequest:URLRequest = new URLRequest('header_v8.swf');
mLoader = new Loader();
mLoader.load(mRequest);
holder = new Sprite();
holder.addChild(mLoader);
addChild(holder);
mSound = new SoundTransform(0);
holder.soundTransform = mSound;
}
}
}
上面的代码仍播放音频,并且未显示原始swf。所以,我的问题是:
如何将外部音频静音? 我如何直接显示外部swf?
非常感谢任何有用的示例/文档的建议或指示
答案 0 :(得分:4)
你是在调试播放器中运行吗?看看你的代码,它似乎应该在这一行至少抛出一个错误:
holder.addChild(mLoader);
似乎holder
未在此时初始化。也许有一个错误,你没有看到破坏你的代码...静音的代码看起来正确(虽然我没有尝试过)。也许你可以将它应用到holder
而不是内容本身;否则你的标题swf可能部分加载并在调用完整的处理程序之前开始播放声音。
同样SoundMixer让你控制全局音量(我提到它,因为虽然它可能不是理想的方式,但也许它只适用于此)。
修改强>
在我做的快速测试中,这有效地使加载的swf静音:
var mRequest:URLRequest = new URLRequest('banner.swf');
var mLoader:Loader = new Loader();
mLoader.load(mRequest);
var holder:Sprite = new Sprite();
holder.addChild(mLoader);
addChild(holder);
var t:SoundTransform = new SoundTransform(0);
holder.soundTransform = t;
我删除了完整的处理程序,因为它不再需要了。