我在Minko库的覆盖示例中发送简单消息时遇到了一些问题
我尝试在不修改的情况下使用本例的c++代码,同时在javascript中添加了Minko.addListener
。js的代码在这里:
<html>
<head>
</head>
<body>
<script>
Minko.addEventListener("hello", function() {
/* simply replace ":" with <-----> */
document.getElementById("gameTimeLeftSeparator").textContent = "<------>"
});
</script>
<body>
<div id="content">
<div id="scoreBanner">
<div id="scoreBannerBackground"></div>
<div class="teamScore" id="teamScoreRed">0</div>
<div class="teamScore" id="teamScoreBlue">0</div>
<div class="gameTimeLeft" id="gameTimeLeftMn">0</div>
<div class="gameTimeLeft" id="gameTimeLeftSeparator">:</div>
<div class="gameTimeLeft" id="gameTimeLeftSec">0</div>
</div>
</div>
<body >
</body>
</html>
我真的不明白问题出在哪里。我添加了监听器,我的非常简单的函数(用经典的addListener("click", ... )
测试)就可以工作了。在这里,我使用由c++发送的Minko.addListener("hello", ... )
(该示例的main.cpp的第113行)。
您在应用程序中所做的是C++/JS消息传递的一个非常糟糕的例子,因为您只需使用C++DOM API就可以实现完全相同的行为,如下所示:
overlay->mainDOM()->getElementById("gameTimeLeftSeparator")->textContent("<----->");
如果您想要做的只是简单地更新DOM元素(内容),那么上面的代码(或类似的C++DOM API方法)就是您要做的。
如果您的实际用例无法使用C++DOM API实现,请相应地更新您的原始问题/示例。
无论如何,这个:
Minko.addEventListener("hello", ...
当然应该是这样的:
Minko.addEventListener("message", ...
cf此答案