Можно ли вызвать код C++, инициированный событиями HTML в Минько?
С помощью minko, функции "html overlay", можно ли отправлять события в код на C++ из html?
Приведенный пример с каркасом наглядно демонстрирует, как отправлять события из C++ в html (путем увеличения счетчика и отображения его в html), возможно ли иметь обратную связь?
1 ответ
Да.
События HTML DOM переносятся и становятся доступными в виде сигналов C++. Так что вы можете сделать что-то вроде:
dom->getElementById("my-element-id")->onclick()->connect(
[](dom::AbstractDOMMouseEvent::Ptr event)
{
// do something...
}
);
На самом деле это делается в том же примере: https://github.com/aerys/minko/blob/master/example/html-overlay/src/Main.cpp#L110
Вы также можете отправлять и получать "сообщения" в обоих направлениях, используя AbstractDOM::sendMessage()
метод в C++ или Minko.sendMessage()
функция в JS. Вы можете прослушать эти сообщения, используя AbstractDOM::onmessage()
в C++ и Minko.addEventListener("message", yourCallbackFunction)
,
Обратите внимание, что вы также можете позвонить AbstractDOM::eval()
в вашем коде C++ для выполнения кода JavaScript. Это то, как мы реализовали большинство вещей на самом деле.