代码示例:
bool MirrarOrnaments::onMouseDown(FB::MouseDownEvent *evt, FB::PluginWindow *)
{
if(evt->m_Btn == FB::MouseButtonEvent::MouseButton_Left)
{
//from here i need to function in my JavaScript with argument of FB::variant_list_of(evt->m_x)(evt->m_y));
}
}
有可能吗?
尝试简单地返回variant_list以在JS中使用它,
但无论如何都需要bool:
BEGIN_PLUGIN_EVENT_MAP()
EVENTTYPE_CASE(FB::MouseDownEvent, onMouseDown, FB::PluginWindow)
END_PLUGIN_EVENT_MAP()
答案 0 :(得分:3)
要对JavaScript进行回调,首先需要将回调作为输入传递给JSAPI插件。
您可以按照以下方式执行此操作:
在PluginTestAPI.cpp
中registerMethod("SetCallback", make_method(this, &PluginTestAPI::SetCallback));
int PluginTestAPI::SetCallback(const FB::JSObjectPtr& callback)
{
m_CallBack = callback;
}
在PluginTestAPI.h中
class PluginTestAPI
{
FB::JSObjectPtr* m_pCallback;
int SetCallback(const FB::JSObjectPtr& callback);
然后在JavaScript中设置时传递此函数:
function myJSCallback (params) {
}
myplugin.SetCallBack(myJSCallback);
然后你可以用你的C ++代码调用这个回调:
bool MirrarOrnaments::onMouseDown(FB::MouseDownEvent *evt, FB::PluginWindow *)
{
if(evt->m_Btn == FB::MouseButtonEvent::MouseButton_Left)
{
//from here i need to function in my JavaScript with argument of
m_pCallback->Invoke(FB::variant_list_of(evt->m_x)(evt->m_y));
}
}