Можно ли вызвать код 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. Это то, как мы реализовали большинство вещей на самом деле.

Другие вопросы по тегам