0

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>

これは私のエラーです:

 Uncaught TypeError: Cannot call method 'playMyVideo' of null index.html:37
playMyVideoInFlash index.html:37
onclick

私のボタンコード:

 <button type="button"  onclick="playMyVideoInFlash()">play</button>
    <button type="button" onclick="pauseMyVideoInFlash()">pause</button>

前もって感謝します

4

1 に答える 1

0

中括弧を使用すると動作するはずです(または1行で記述してください!)、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;
}

1 行:

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;
}

getFlashMovieObject-Function で NULL を返すという理由だけで、関数の NULL もチェックする必要があります (おそらく playMyVideo/stopMyVideo 関数が存在する場合)。

 function playMyVideoInFlash(){
    var flashMovie = getFlashMovieObject("FLVplayer");
    if(typeof flashMovie === 'object' && typeof flashMovie.playMyVideo === 'function') {
      flashMovie.playMyVideo();
    }
}
于 2012-11-26T17:07:07.247 に答える