Javascript 从根JSAPI对象(由prepscript创建)调用另一个JSAPI对象的类成员

Javascript 从根JSAPI对象(由prepscript创建)调用另一个JSAPI对象的类成员,javascript,plugins,callback,firebreath,Javascript,Plugins,Callback,Firebreath,我发现了这段摘录: 您可以将JSAPI实例以JSAPIPtr的形式返回给JavaScript调用方,并使用该实例调用不同的JSAPI对象,例如plugin().method1().method2()将调用根JSAPI对象的method1(),调用第一次调用返回的JSAPI对象的method2() 有什么例子吗 我的目标: 我想通过prepscript自动创建的根JSAPI对象调用另一个类(也实现了FB:JSAPIAuto)成员(比如ABCAPI:FB:JSAPIAuto),也就是说,如上所述,通

我发现了这段摘录:

您可以将JSAPI实例以JSAPIPtr的形式返回给JavaScript调用方,并使用该实例调用不同的JSAPI对象,例如plugin().method1().method2()将调用根JSAPI对象的method1(),调用第一次调用返回的JSAPI对象的method2()

有什么例子吗

我的目标: 我想通过prepscript自动创建的根JSAPI对象调用另一个类(也实现了FB:JSAPIAuto)成员(比如ABCAPI:FB:JSAPIAuto),也就是说,如上所述,通过创建该类的JSAPIPtr。我就在这里吗

另外,我创建的ABCAPI的JSAPI对象是否也应该获得插件引用

我也通过了,但没能跟上

到目前为止,我可以创建一个返回FB::JSAPIPtr的方法,该方法具有另一个类(实现FB::JSAPIAuto)指针的值

这里举个小例子会很有帮助

*另一个疑问是:
如何将一个简单的C++类(不扩展任何FielSuffic类)暴露给JavaScript,以便我可以访问它的成员?*我找到了一个V8 JavaScript引擎的东西。对此一无所知。我希望我的插件也能用于除chrome之外的所有其他浏览器。我需要这个吗?

好的,这里有一些东西。首先,prep脚本不会为您创建JSAPI对象——这是fbgen。这是一个重要的区别,因为您将多次运行prep脚本,但仅运行一次以创建项目框架

接下来,你会让事情变得比需要的复杂得多。JSAPI对象只是一个类对象;如果在C++中有引用,可以调用其他类的成员,就像任何其他对象一样。它并没有什么神奇之处,除非你把它交给javascript,然后你可以使用的方法只有暴露给javascript的方法

您没有解释的是对第二个JSAPI对象的引用来自何处。您是从javascript传入的吗?如果是这样,事情会变得更加棘手,您必须使用->Invoke调用它,就像调用从页面传入的任何其他javascript对象上的方法一样。是用C++创建的吗?如果是这样的话,那么你只需要像其他物体一样使用它

至于假设的ABCAPI对象是否应该获得插件引用,这完全取决于您。根JSAPI对象不需要,只是为了方便您访问插件


例如,查看firebreath代码库中的。它有嵌套JSAPI对象之类的例子。

想看看这个FBTestPlugin的调试流程吗?你有一个演示项目吗?如何在VS2010解决方案中安排这些cpp文件以获得更多关于例子的信息,如果你从开始,你会找到关于如何为你的平台构建firebreath插件的说明让我告诉你我做了什么,我跑了fbgen.py。它生成了framework.run预脚本2010。下一位:*将examples文件夹中的example.cpp和.h文件复制到生成的插件项目中。**我知道这不是正确的做法。那又是什么呢?因为fbgen已经创建了一个项目,其中没有任何示例源。感谢您这么简单,感谢您的Fb团队。请检查我的另一个问题!运行示例不需要运行fbgen。构建页面上有关于构建示例的说明!基本上运行“prep2010.cmd examples”,它会将构建文件放在buildex/中。我不介意帮忙,但是如果你自己去寻找答案——通过阅读回答所有这些问题的入门信息——你的进步会快得多