使用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()
函数双向发送和接收"消息"。您可以使用C++和Minko.addEventListener("message", yourCallbackFunction)
中的AbstractDOM::onmessage()
收听这些消息。
请注意,您还可以在C++代码中调用AbstractDOM::eval()
来执行 JavaScript 代码。这就是我们实际实现大多数事情的方式。