Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 as3加载、播放和静音外部swf_Actionscript 3_Audio - Fatal编程技术网

Actionscript 3 as3加载、播放和静音外部swf

Actionscript 3 as3加载、播放和静音外部swf,actionscript-3,audio,Actionscript 3,Audio,我有一个文件,我没有来源-一个闪光头与一个讨厌的声音介绍,我需要静音所有的声音。没有资源,我只能做有限的事。我有一些as3代码,我正在使用这些代码尝试将swf加载并静音(在FlashDevelop中构建)。以下是相关代码: package { import flash.display.MovieClip; import flash.display.Sprite; import flash.events.Event; import flash.media.SoundTransform; impo

我有一个文件,我没有来源-一个闪光头与一个讨厌的声音介绍,我需要静音所有的声音。没有资源,我只能做有限的事。我有一些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


如果您有任何关于有用示例/文档的建议或指示,我们将不胜感激

您是否在调试播放器中运行此功能?查看您的代码,它似乎至少应该在这一行抛出一个错误:

holder.addChild(mLoader);
此时,
holder
似乎未初始化。也许有一个错误,你没有看到,打破了你的代码。。。静音代码看起来不错(尽管我还没有试过)。也许你可以将其应用于
持有者
,而不是内容本身;否则,在调用完整的处理程序之前,可能会部分加载头swf并开始播放声音

还可以控制全局卷(我之所以提到它,是因为尽管它可能不是实现这一点的理想方式,但可能它在这里就起作用了)

编辑

这在我做的一个快速测试中有效地使加载的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;

我删除了完整的处理程序,因为它不再需要了。

回头看,holder变量实际上并不需要。移除后,只需使用addChild(mLoader);它按预期加载了swf。然而,在调试播放器中查看之后,我发现加载的swf是一部AVM1Movie。我将不得不做更多的研究,如何正确加载和静音。在这种情况下,你不能直接与它交流。但是可能(我从来没有这样做过)有一个支架
精灵
并静音它可以使加载的swf静音。我尝试过(参见编辑的OP),但它仍然在播放加载的swf的音频。有什么建议吗?太棒了。。谢谢我编辑了OP以显示工作代码。再次谢谢你,没问题。我很高兴这有帮助。