tom*_*son 2 audio actionscript-3
我有一个我没有来源的文件 - 一个带有令人讨厌的声音介绍的 flash 标题,我需要将所有声音静音。没有消息来源,我只能做些什么。我有一些 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;
}
}
Run Code Online (Sandbox Code Playgroud)
}
上面的代码仍会播放音频,并且不会显示原始 swf。所以,我的问题是:
我如何将外部音频静音?如何像直接查看外部 swf 一样显示外部 swf?
任何有用的示例/文档的建议或指针将不胜感激
你是在调试播放器中运行它吗?看看你的代码,它似乎应该在这一行至少抛出一个错误:
holder.addChild(mLoader);
Run Code Online (Sandbox Code Playgroud)
那时似乎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;
Run Code Online (Sandbox Code Playgroud)
我删除了完整的处理程序,因为它不再需要了。