<script type="text/javascript"> function test() { var obj = window.document.getElementById("BoBo"); var ar = new Array(1); ar[0]=0; var aaa = obj.Get_Value(ar,103); alert(ar[0]=); ////输出是这个 } </script>
我猜测Get_Value的定义是这样的 Get_Value(用于保存播放时间的浮点数变量的指针,要取得的项目类型)因为在C++里面很多都通过传址来改变变量的值,取得的值保存在第一个参数里面,而返回值只表示,是否取得成功 当然,这只是我的猜测,在C++里这是行得通,JS貌似没法改变参数值的样子……要不你试试 alert(arr) 或者 var r = 0.0; var aaa = obj.Get_Value(r,103); alert(r)
这是个bobo p2p播放器的ocx,我肯定改不了接口的。但它提供了这个二次开发的接口。 电影已经可以播放了,我是在播放的时候调用test的。 <script type="text/javascript"> function test() { var obj = window.document.getElementById("BoBo"); var ar = new Array(1); ar[0]=0; var aaa = obj.Get_Value(ar,103); alert(ar[0]); ////输出是这个 } </script>
只能猜测了.
我猜,你的问题很可能出在参数 ar 上了.
javascript中的数组与ocx需要的指针变量绝对不是一回事儿.
因此也就无法向 obj.Get_Value正确的传递参数.
最好还是把OCX的接口改一下.
不要使用指针类型的参数.另外,楼主可以试试用VBScript调用.
function test()
{
var obj = window.document.getElementById("BoBo");
var ar = new Array(1);
ar[0]=0;
var aaa = obj.Get_Value(ar,103);
alert(ar[0]=); ////输出是这个
}
</script>
Get_Value(用于保存播放时间的浮点数变量的指针,要取得的项目类型)因为在C++里面很多都通过传址来改变变量的值,取得的值保存在第一个参数里面,而返回值只表示,是否取得成功
当然,这只是我的猜测,在C++里这是行得通,JS貌似没法改变参数值的样子……要不你试试
alert(arr)
或者
var r = 0.0;
var aaa = obj.Get_Value(r,103);
alert(r)
不同语言间调用时这样的问题经常会出现.
我不肯定是否一定可以用VBScript实现.
另外,这也和ocx的接口有关.
VBS方面是否可以实现,我也调查一下看看.建议,你还是修改一下OCX的接口.
将返回值以字符串的形式返回.
电影已经可以播放了,我是在播放的时候调用test的。
<script type="text/javascript">
function test()
{
var obj = window.document.getElementById("BoBo");
var ar = new Array(1);
ar[0]=0;
var aaa = obj.Get_Value(ar,103);
alert(ar[0]); ////输出是这个
}
</script>
下来试试。
<Object id="BoBo" name="BoBo" width=400 height=300 classid='clsid:EC0978ED-24E3-403C-AB7A-060E388553E6' codebase='http://www.17bobo.com/Software/BoBo_ActiveX_V3.ocx'>
这句就是了