【问题标题】:Stop music from in flash from javascript event从 javascript 事件中停止音乐
【发布时间】:2009-04-01 18:13:59
【问题描述】:

我正在尝试停止我在页面中加载的 flash swf 中的音乐

<object id="FlashControl1" type="application/x-shockwave-flash"
data="Flash/Preloader%20-%20Splash.swf" width="980px" height="316px">
<param name="movie" value="Flash/Preloader%20-%20Splash.swf" />
<param name="wmode" value="Transparent" />
<param name="quality" value="High" />
<param name="play" value="True" />
<param name="loop" value="False" />
<param name="menu" value="False" />
<param name="scale" value="Exactfit" />
<param name="flashvars" value="name="FlashControl1"" />
<img src="Images/Banner/Main_Banner.jpg" alt="" width="980px" height="316px" />
</object>

我有一个按钮,可以加载带有 silverlight 视频的模态弹出窗口,我希望通过执行 SoundMixer.stop(); 来停止音频。命令。

我还没有在谷歌上找到解决方案

【问题讨论】:

    标签: javascript flash


    【解决方案1】:

    在您的 Flash 文件中,您必须具有以下功能:

    function stopSound():void {
        SoundMixer.stop();
    }
    

    然后,您必须使其可用于 JavaScript 调用

    ExternalInterface.addCallback('stopSound', stopSound);
    

    在您的 JavaScript 代码中,您必须有这个简单的函数来选择您的 swf:

    function getFlashMovie(movieName) 
    {
        var isIE = navigator.appName.indexOf("Microsoft") != -1;
        return (isIE) ? window[movieName] : document[movieName];
    }
    

    当您想停止电影中的声音时,您只需从 JavaScript 调用您之前在 swf 中提供的函数:

    movie = getFlashMovie('your-movie-name');
    movie.stopSound();
    

    应该这样做。有关 ExternalInterface.addCallback 的更多信息,请查看the Adobe AS3 Language Refrence page。

    【讨论】:

    • Message: 'undefined' is null or not an object 我使用以下内容生成我的 Flash 文件
    • function test() { movie = document.getElementById('FlashControl1');电影.stopSound(); } 结束了工作。谢谢
    【解决方案2】:
    function test() {
    movie = document.getElementById('FlashControl1');
    movie.stopSound();}
    

    这行得通:)

    【讨论】:

    • 确保在所有浏览器上检查它。我记得我在使用 getElementById 时遇到了一些问题,但我不记得到底为什么我没有使用它。
    【解决方案3】:

    我尝试了很多东西,例如$("object").stop();

    对 IE 没有任何作用。

    然后我想出了这个肮脏的解决方案。 我把整个对象放在一个 div

    然后在javascript中

    document.getElementById("outerdiv").innerHTML="";
    

    繁荣......就像一个魅力......

    【讨论】:

    • $("object").stop(); 应该怎么做?这会停止 jQuery 动画,并且与声音或 Flash 无关。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多