我已经使用 firebreath 框架编写了一个 NPAPI 插件。我能够从 Javascript 传递简单的数值并在我的 (C++) 插件中访问它们,执行操作然后返回结果。我想知道现在如何对向量进行操作,即数组。我不想在我的插件中分配新数组并从 JavaScript 复制数组(尽管我不知道该怎么做)。如何直接访问插件中的 JavaScript 数组?有什么特殊的方法吗?
问问题
526 次
1 回答
1
Javascript 对象可以与 FB::JSObjectPtr 类型一起使用。您可能想要使用的 JavaScript 对象示例包括:
- Javascript 对象(带有方法和/或值成员)
- Javascript 数组(您计划修改的;否则您可以使用容器类型)
- 用于回调的 Javascript 方法
数组是对象;使用 getProperty(n) 或 getProperty("length") 等获取值
您还可以使用 ->invoke("push", FB::variant_list_of(val)) 等方法
(在 JSAPI 方法上,为了使用 JSObjectPtr 类型,您应该使用看起来像这样的方法:)
void doSomethingWithAnArray(const FB::JSObjectPtr& array) { ... }
还要记住,FireBreath 无法分辨它是什么类型的 js 对象,只是有一个 js 对象;如果他们没有给你一个实际的数组而是一些其他对象,你必须自己做错误检测。
于 2012-09-09T18:03:26.740 回答