首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未捕获的TypeError javascript与flash通信

未捕获的TypeError javascript与flash通信
EN

Stack Overflow用户
提问于 2012-11-27 01:01:44
回答 1查看 245关注 0票数 0

我想通过javascript与flash通信,来控制我的flash播放器这里是我的代码,但我有一个错误,你能帮我吗?

代码语言:javascript
复制
    var flashvars = {
        flvpVideoSource: "myApp.swf",
        flvpWidth: "640",
        flvpHeight: "360"
    };
    var params = {
        menu: "true",
        allowfullscreen: "true"
    };
    var attributes = {
        id: "FLVplayer",
        name: "FLVplayer"
    };


    //functions used to find the id of the flash object
    function getFlashMovieObject(movieName){
        if(document.embeds[movieName])
        return document.embeds[movieName];
        if(window.document[movieName])
        return window.document[movieName];
        if(window[movieName])
        return window[movieName];
        if(document[movieName])
        return document[movieName];
        return null;
    }

    //function in flash to play the video
    function playMyVideoInFlash(){
        var flashMovie = getFlashMovieObject("FLVplayer");
        flashMovie.playMyVideo();
    }

    //function in flash to pause the video
    function pauseMyVideoInFlash(){
        var flashMovie = getFlashMovieObject("FLVplayer");
        flashMovie.pauseMyVideo();
    }
    </script>

这是我的错误:

代码语言:javascript
复制
 Uncaught TypeError: Cannot call method 'playMyVideo' of null index.html:37
playMyVideoInFlash index.html:37
onclick

我的按钮代码:

代码语言:javascript
复制
 <button type="button"  onclick="playMyVideoInFlash()">play</button>
    <button type="button" onclick="pauseMyVideoInFlash()">pause</button>

提前感谢

EN

回答 1

Stack Overflow用户

发布于 2012-11-27 01:07:07

使用大括号,它应该可以工作(或者写在一行中!),javascript会自动在每行后面插入一个分号!

带大括号的:

代码语言:javascript
复制
function getFlashMovieObject(movieName){
    if(document.embeds[movieName]) {
      return document.embeds[movieName];
    }
    if(window.document[movieName]) {
      return window.document[movieName];
    }
    if(window[movieName]) {
      return window[movieName];
    }
    if(document[movieName]) {
      return document[movieName];
    }
    return null;
}

一行:

代码语言:javascript
复制
function getFlashMovieObject(movieName){
    if(document.embeds[movieName]) return document.embeds[movieName];
    if(window.document[movieName]) return window.document[movieName];
    if(window[movieName]) return window[movieName];
    if(document[movieName]) return document[movieName];
    return null;
}

您还应该检查函数中的NULL (可能还有playMyVideo/stopMyVideo-function是否存在),因为您在getFlashMovieObject-Function中返回了它:

代码语言:javascript
复制
 function playMyVideoInFlash(){
    var flashMovie = getFlashMovieObject("FLVplayer");
    if(typeof flashMovie === 'object' && typeof flashMovie.playMyVideo === 'function') {
      flashMovie.playMyVideo();
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13569547

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档