改变嵌入式Swf播放器的Src

时间:2017-12-12 11:10:49

标签: javascript flash

所以我正在制作一个有超过50个SWF电影的小项目,我希望能够像普通人一样观看它们(播放,暂停,倒带和所有那些好东西)。

Anywho,我已经完成了所有这些...... 我唯一能做的就是改变嵌入式Flash播放器动态,即用户选择显示的.swf文件而不是硬编码的路径。

到目前为止,这是我的代码:



function changePlayerSrc()
{
  var player  = document.getElementById("flash_player_obj"); //selects the flash player object
  var file    = document.querySelector('input[type=file]').files[0]; //get the user's file
  var reader  = new FileReader();

  reader.onloadend = function()
  {
    var clone = player.cloneNode(true); //cloned player
    var res = reader.result; //user's file as blob

    clone.childNodes[1].setAttribute('src', res); //change src
    player.parentNode.replaceChild(clone, player);
  }
  
  reader.readAsDataURL(file);
}

<object id = "flash_player_obj">
    <embed = "flash_player_embed" 
        name = "flash_player"
        src = "H:\test.swf"
        width = "100%"
        height = "500"
        play = "false"
        loop = "false"
        quality = "high"
        scale = "showall"
    />
</object>

<input type="file" onchange="changePlayerSrc()" />
&#13;
&#13;
&#13;

上面的代码只给了我一个空白的Flash播放器,没有播放。

我也尝试过使用reader.readAsArrayBuffer(file);

var res   = reader.result;
var blob  = new Blob([res], {type: "application/x-shockwave-flash"});
var url   = URL.createObjectURL(blob);

使用url作为嵌入的src,这只是出于某种原因打开了保存文件对话框。

另请注意,我没有使用任何服务器端代码,因为没有任何服务器可以使用。 此脚本仅在单个.html文件上运行。

0 个答案:

没有答案