1

非常に基本的な Chrome Native Client アプリケーションを実行しようとしています。私がやりたいのは、たとえば、ユーザーがキーを押すたびに「X を押しました」と表示するなど、キーストロークに応答することです。私は一日中それに取り組んでいましたが、キーを押すたびに「Uncaught TypeError: Object # has no method 'postMessage'」が表示されます。

エラーはすべて Javascript にあります。Native Client C++ モジュールは正常に動作します。

ドキュメントの先頭にある Javascript:

myModule = null;  // Global application object.

function moduleDidLoad() {
    myModule = document.getElementById('mymodule');

    alert("module loaded!") // this works

    myModule.postMessage('hello'); // this works, and posts 'hello' to the module

   // ERROR
   document.body.onkeydown = function() {myModule.postMessage('hi');}
}

ページ内:

<div id="listener">
   <script type="text/javascript">

     var listener = document.getElementById('listener');
      listener.addEventListener('load', moduleDidLoad, true);

   </script>

  <embed name="nacl_module"
   id="mymodule"
   width=0 height=0     
   src="mymodule.nmf"
   type="application/x-nacl" />
</div>

addEventListener を使用して body タグに追加する方法、onKeyDown を使用して body タグに直接追加する方法など、約 15 の方法を試しましたが、何も機能しません。

私は C/C++ と PHP の経験がありますが、Javascript は本当に苦手です。基本的で明白な何かが欠けているに違いないと思います。

4

1 に答える 1

0

解決しました。ページの他の場所で、ゲーム モジュールを含む DIV の内容が変更され、モジュールがメモリから削除されていました。

于 2012-02-12T14:19:43.813 に答える