繁体   English   中英

如何执行从FireBreath到JavaScript的回调

[英]How can I do a callback from FireBreath to JavaScript

代码示例:

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中使用它,

但无论如何,它都必须是布尔的cos:

BEGIN_PLUGIN_EVENT_MAP() 
EVENTTYPE_CASE(FB::MouseDownEvent, onMouseDown, FB::PluginWindow)       
END_PLUGIN_EVENT_MAP()

要对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)); 
  }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM