javascript - 从外部的 javascript 控制 Flash 播放器?

标签 javascript flash actionscript-3 embed

我正在制作 flash 播放器,它应该可以从外部通过 javascript 进行控制。

我需要那些方法: 播放/暂停和音量级别

我受困于音量级别...我尝试添加此代码:

flashMovie.volume = 10;

flashMovie 是 flash 实例...它显示NO ERROR 但它NOT WORKING

我尝试使内部 AddCall();然后当它从 javascript 调用 call() 以返回声级时。

作为 3:

function setthisvolume()
{
        var vlm = ExternalInterface.call('giveMeVolume()');
        this.soundTransform.volume = vlm;
}

ExternalInterface.addCallback("setthisvolume", setthisvolume);

JS:

var soundlevel = 10;

function soundlevelset()
{
    var flashMovie=getFlashMovieObject("objswf");
    flashMovie.setthisvolume();

}

function giveMeVolume()
{
    return parseInt(soundlevel);
}

但是我收到了这个错误:

在 NPObject 上调用方法时出错!

我什至尝试过 setInterval():

作为 3:

function setthisvolume()
{
        var vlm = ExternalInterface.call('giveMeVolume()');
        this.soundTransform.volume = vlm;
}

setInterval(setthisvolume, 1000);

JS:

var soundlevel = 10;

function giveMeVolume()
{
    return parseInt(soundlevel);
}

它没有显示任何错误,但它也不起作用......

有人用过这样的东西吗?

谁能帮我看看我做错了什么...

谢谢!

最佳答案

谢谢@someone! 第二个选项没问题!

这是工作代码:

AS3:

function setthisvolume(vlm)
{
        this.soundTransform = new SoundTransform(vlm);
}

ExternalInterface.addCallback("setthisvolume", setthisvolume);

JS:

function getFlashMovieObject(movieName)
{
  if (window.document[movieName]) 
  {
      return window.document[movieName];
  }
  if (navigator.appName.indexOf("Microsoft Internet")==-1)
  {
    if (document.embeds && document.embeds[movieName])
      return document.embeds[movieName]; 
  }
  else
  {
    return document.getElementById(movieName);
  }
}

var soundlevel = 0.5;                  // it's 0-1 volume, not 0-100
function soundlevelset()
{
    var flashMovie=getFlashMovieObject("objswf");
    flashMovie.setthisvolume(parseFloat(soundlevel));
}

当您使用 slider 时,每次 slider 更改时,您都需要更改声级变量并调用 soundlevelset();

希望我能帮助下一个开始这个的人......:)

谢谢!

关于javascript - 从外部的 javascript 控制 Flash 播放器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7458218/

相关文章:

actionscript-3 - 基于flex4中固定点的线旋转

apache-flex - 有什么方法可以将 ActionScript 3 (Flex/AIR) 项目打印到标准输出吗?

javascript - 复选框选择取消全选并执行功能

javascript - 如何动态改变UI Chip的大小

javascript - AngularJS toastr 在文件上传时显示警报两次而不是一次

javascript - 使用 AngularJs 往返 "transfer"指令的最佳方法是什么

c# - 在 2021 年播放 .swf 文件?

php - 从 SQL 数据库检索列表并为 AS3 中的每一行创建链接

Flash TLFTextField 不会调用 iOS 上的软键盘

图像作为 Actionscript 3 中的变量