2013-05-29 3 views
0

브라우저 창에서 FireBreath로 작성된 C++ 플러그인을 통해 마우스 클릭시 기능을 트리거하려고합니다. 아래의 코드를 클릭하면 아무런 문제가 없습니다. 는 TestPluginAPI.h에 다음 코드를 얻었다 :브라우저 창에서 클릭하여 기능을 실행할 수 없음.

BEGIN_PLUGIN_EVENT_MAP() 
EVENTTYPE_CASE(FB::MouseDownEvent, onMouseDown, FB::PluginWindow) 
END_PLUGIN_EVENT_MAP() 
virtual bool onMouseDown(FB::MouseDownEvent *evt, FB::PluginWindow *); 

그리고 testPluginAPI.cpp이 코드 :

bool TestPluginAPI::onMouseDown(FB::MouseDownEvent *evt, FB::PluginWindow *) 
{ 

    if(evt->m_Btn == FB::MouseButtonEvent::MouseButton_Left) 
    { 
     fire_showcrd(FB::variant_list_of(evt->m_x)(evt->m_y)); 
    } 
    return 0; 
} 

Fire_showcrd(...) 별도로 테스트되었습니다하고 일하고있어. 클릭 감지기 부분에 문제가있는 것 같지만 무엇입니까?

+1

나는 누군가가 플러그인 영역을 클릭 할 때 마우스 클릭을 포착하려한다고 가정 한 것으로 가정합니다. 실수로 플러그인 상단에 떠있는 것이 없는지 확인하십시오. 또한 FB_GUI_DISABLED가 정의되어 있지 않고 AttachedEvent가 실행되고 있는지 확인하십시오. – taxilian

답변

1

FireBreath의 PluginWindow 이벤트는 웹 페이지의 다른 곳이 아닌 플러그인이있는 지역에만 적용됩니다. 이 메소드를 사용하여 플러그인 자체를 클릭 할 때만 이벤트가 발생하고 DOM 요소가 플러그인 위에 마우스를 올려 놓으면 (플러그인이 윈도우로 인해 그려지더라도) 해당 요소에 이벤트가 손실 될 수 있습니다.

자바 스크립트를 사용하여 전체 페이지의 클릭 이벤트를 가져올 수 있습니다.