2013-04-05 29 views
0

功能如何我通過ptxptyTestPluginAPI::ClickSemulationMoveTestPluginAPI::ClickSemulationClick(int ptx, int pty)
問題是,我必須在JavaScript中使用這2個函數,因此不能簡單地將它從一個暴露給另一個。FireBreath傳遞值從一個功能到另一個,並使用該在JavaScript

FB::variant TestPluginAPI::ClickSemulationClick(int ptx, int pty) 
{ 

ShowCursor(true); 
MouseLeft(); 
MouseReturn(ptx, pty); 
ShowCursor(true); 
return 0; 
} 

FB::variant TestPluginAPI::ClickSemulationMove(int ptx, int pty) 
{ 
POINT pt; 
MouseMove(-325, 605); 
GetCursorPos(&pt); 
ptx = pt.x; 
pty = pt.y; 
return 0; 
} 

我得到它,我需要使用JSObjectPtr或FB :: VariantList,但我的困惑位沒有任何樣品。任何人都可以看到簡單的代碼示例嗎?

回答

1

你讀過JSAPI docs嗎?所有的信息都在那裏。

要返回數組(將是一個JavaScript數組)有兩個值,你可以這樣做:

return FB::variant_list_of(pt.x)(pt.y); 

然後在JavaScript你可以調用像其他方法:

var res = plugin().ClickSemulationMove(); // Assuming you don't actually need args here 
plugin().ClickSemulationClick(res[0], res[1]); 

你還可以通過直接在陣列,在這種情況下,你可以做這樣的事情在C++:

FB::variant TestPluginAPI::ClickSemulationClick(const std::vector<int>& arr) 
{ 
    ShowCursor(true); 
    MouseLeft(); 
    MouseReturn(arr[0], arr[1]); 
    ShowCursor(true); 
    return 0; 
} 

絲氨酸真的,在FireBreath代碼庫中的FBTestPlugin example中有所有這些東西的例子;你應該在那裏度過一段時間。我看到你問的大多數問題都可以通過閱讀代碼很快發現,然後你會更好地理解它。

+0

你再次幫助我,thx taxilian。 剛剛沒有時間,當我在這,這就是爲什麼把它放在這裏。 – 2013-04-06 18:53:46

+0

是的,我沒有閱讀這些JSAPI文檔,不知道爲什麼,但我會。 – 2013-04-06 19:04:55

相關問題