是否可以触发由 minko 中的 html 事件发起的 C++ 代码?
is it possible to trigger c++ code, initiated by html events in minko?
使用 minko、"html overlay" 功能,是否可以将事件从 html 发送到 c++ 代码?
提供的示例和框架清楚地演示了如何从 c++ 向 html 发送事件(通过递增计数器并将其反映在 html 中),是否可以进行通信反过来?
是的。
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
您还可以使用 C++ 中的 AbstractDOM::sendMessage()
方法或 JS 中的 Minko.sendMessage()
函数来发送和接收 "messages" 两种方式。您可以使用 C++ 中的 AbstractDOM::onmessage()
和 Minko.addEventListener("message", yourCallbackFunction)
.
收听这些消息
请注意,您也可以在 C++ 代码中调用 AbstractDOM::eval()
来执行 JavaScript 代码。这就是我们实际实现大部分内容的方式。
使用 minko、"html overlay" 功能,是否可以将事件从 html 发送到 c++ 代码?
提供的示例和框架清楚地演示了如何从 c++ 向 html 发送事件(通过递增计数器并将其反映在 html 中),是否可以进行通信反过来?
是的。
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
您还可以使用 C++ 中的 AbstractDOM::sendMessage()
方法或 JS 中的 Minko.sendMessage()
函数来发送和接收 "messages" 两种方式。您可以使用 C++ 中的 AbstractDOM::onmessage()
和 Minko.addEventListener("message", yourCallbackFunction)
.
请注意,您也可以在 C++ 代码中调用 AbstractDOM::eval()
来执行 JavaScript 代码。这就是我们实际实现大部分内容的方式。