我正在制作 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/