我正在制作闪存播放器,应该是从外部控制,从javascript。
我需要那些方法:播放/暂停和音量级
我被音量困住了.我试图添加以下代码:
flashMovie.volume = 10;其中flashMovie是闪存实例..。它显示没有错误,,但它是不工作
我尝试创建内部AddCall();然后调用它从javascript调用()返回声音级别。
如3:
function setthisvolume()
{
var vlm = ExternalInterface.call('giveMeVolume()');
this.soundTransform.volume = vlm;
}
ExternalInterface.addCallback("setthisvolume", setthisvolume);联署材料:
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);联署材料:
var soundlevel = 10;
function giveMeVolume()
{
return parseInt(soundlevel);
}它没有显示出任何错误,但也不起作用.
有人用过这样的东西吗?
有人能帮我做错事吗..。
谢谢!
发布于 2011-09-17 23:45:05
在调用giveMeVolume时尝试删除括号,方法是更改以下内容:
var vlm = ExternalInterface.call('giveMeVolume()');对此:
var vlm = ExternalInterface.call('giveMeVolume');如果这不起作用,请尝试将卷直接作为参数/参数传递,如下所示(这可能是一种更好的方法):
AS3:
function setthisvolume(vlm)
{
this.soundTransform.volume = vlm;
}
ExternalInterface.addCallback("setthisvolume", setthisvolume);联署材料:
var soundlevel = 10;
function soundlevelset()
{
var flashMovie=getFlashMovieObject("objswf");
flashMovie.setthisvolume(soundlevel);
}发布于 2011-09-18 12:15:01
“谢谢,”有人!第二种选择没问题!
以下是工作代码:
AS3:
function setthisvolume(vlm)
{
this.soundTransform = new SoundTransform(vlm);
}
ExternalInterface.addCallback("setthisvolume", setthisvolume);联署材料:
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));
}每次滑块改变时,当您使用滑块时,您需要更改声级变量并调用声音级集();
希望我帮了下一个从这个开始的人..。:)
谢谢!
发布于 2011-09-17 23:37:57
代码看起来很合理。
检查是否允许Flash与脚本通信,在创建Flash AllowsScriptAccess - http://help.adobe.com/en_US/as3/dev/WS5b3ccc516d4fbf351e63e3d118a9b90204-7c9b.html时有属性。
检查Falsh是否来自与HTML页面相同的域。
对于addCallback,检查您是否通过Id获得了正确的Flash (在IE/FF中创建Flash的方式不同,因此您可能得到了错误的对象)。
检查你是否有正确的SWF文件-浏览器可能缓存旧版本.也就是说,在Flash控件上添加元素,它只显示静态数字,并确保它与最新的元素匹配。
https://stackoverflow.com/questions/7458218
复制相似问题