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 如何在外部加载的SWF中完全禁用声音?_Actionscript 3_Flash_Audio_Ads - Fatal编程技术网

Actionscript 3 如何在外部加载的SWF中完全禁用声音?

Actionscript 3 如何在外部加载的SWF中完全禁用声音?,actionscript-3,flash,audio,ads,Actionscript 3,Flash,Audio,Ads,在我的应用程序中,我需要在没有声音的情况下播放外部加载的第三方SWFs广告。到目前为止我所做的: 使用SoundTransform将音量设置为0 每帧执行此操作,以便如果广告尝试重置音量,我会将其设置回0 大多数情况下,它是有效的。然而,偶尔也会有广告仍然播放声音 我怀疑这些广告也有同样的伎俩,这里我们有一个竞争条件——谁是最后一个改变音量的人 有没有办法完全禁用加载SWF的声音?有什么方法可以防止这种比赛状态吗 这是我的密码: function onAdStart():void

在我的应用程序中,我需要在没有声音的情况下播放外部加载的第三方SWFs广告。到目前为止我所做的:

使用SoundTransform将音量设置为0

每帧执行此操作,以便如果广告尝试重置音量,我会将其设置回0

大多数情况下,它是有效的。然而,偶尔也会有广告仍然播放声音

我怀疑这些广告也有同样的伎俩,这里我们有一个竞争条件——谁是最后一个改变音量的人

有没有办法完全禁用加载SWF的声音?有什么方法可以防止这种比赛状态吗

这是我的密码:

    function onAdStart():void
    {
        setMasterSound(0);
        addEventListener(Event.ENTER_FRAME, tick);
    }

    function tick( e:Event ):void {
        setMasterSound(0);
    }

    function SetMasterSound(volume:Number):void
    {
        var masterSound:SoundTransform;
        if(SoundMixer.soundTransform.volume != volume)
        {
            masterSound = new SoundTransform();
            masterSound.volume = volume;
            SoundMixer.soundTransform = masterSound;
        }
    }  

请注意该类型的代码。我使用SoundManager类型的类singleton,即使对于加载的swf也是全局的。这样,我可以完全控制所有声音播放,并且可以正确设置所有音量,无论是否在swf中播放声音。所有声音都必须通过该类播放才能正常工作,但所有这些问题都会随之消失。@BotMaster,但在您的情况下,您也可以控制加载的主权财富基金,对吗?我的意思是,你对加载的swf进行编码,以便它们使用你的全局类?因此,如果你设置加载swf的精灵的soundTransform属性,加载的swf是否可以解决这个问题?我找到了另一个答案,更好地描述了我的问题。加载swf并以所述方式控制声音是否不会阻止加载的swf被听到?@webnetic,谢谢!这实际上可能会有所帮助。我试试这个。