0

コードサンプル:

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()
4

1 に答える 1

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)); 
  }
}
于 2013-05-21T19:49:14.923 に答える