【问题标题】:Very simple js test that doesn't work with Minko非常简单的 js 测试,不适用于 Minko
【发布时间】:2018-03-07 12:37:03
【问题描述】:

我在 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 行)。

【问题讨论】:

    标签: javascript c++ minko


    【解决方案1】:

    你在你的应用程序中所做的是一个非常糟糕的 C++/JS 消息传递示例,因为你可以像这样使用 C++ DOM API 实现完全相同的行为:

    overlay->mainDOM()->getElementById("gameTimeLeftSeparator")->textContent("<----->");
    

    如果您想要做的只是更新一个 DOM 元素(内容),那么上面的代码(或类似的 C++ DOM API 方法)是可行的方法。

    如果您的实际用例无法使用 C++ DOM API 实现,请相应地更新您的原始问题/示例。

    不管怎样,这个:

    Minko.addEventListener("hello", ...
    

    当然应该是这样的:

    Minko.addEventListener("message", ...
    

    cfthis answer

    【讨论】:

    • 我关心的不是真正修改 textContent,这是一个用于更改某些内容的简单示例。假设我需要使用它的访问器(不是 dom 元素)触发并修改一个 js 对象。我确定您放置的代码更好,它与覆盖示例中的代码相同,但我需要另一种方式来触发更改,并且“sendMessage”方法无论如何都应该有效,还是无效?
    • 正如您在其他问题(stackoverflow.com/questions/29206609/…stackoverflow.com/questions/29209300/…)中所回答的那样,有很多方法可以从 C++“更改”JS 对象,而无需使用复杂的 C++/JS 消息传递方案。正如您所描述的那样,它们是解决问题的完美答案。如果不是 - 并且任何答案都对远程有帮助 - 您应该使您的原始问题更加精确并且您的示例相关。
    • 假设我只想在 JS 中使用 Minko.AddListener,并将消息(如“hello”)绑定到我的回调函数,并从 C++ 执行 sendMessage("hello")。它有效还是我错过了我刚刚粘贴的示例中的某些内容?
    • 谢谢!最后编辑解决一切!我把解决的问题放在了:)
    猜你喜欢
    • 1970-01-01
    • 2013-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-22
    相关资源
    最近更新 更多