私は私が遊んでいるゲームのアイデアのHTML5実装に取り組んでいます。これの一部は当然のことながらコンテンツを格納しており、その中にゲーム内のさまざまな能力のデータや文字などがあります。JavaScriptのXMLドキュメント "undefined"
特定の文字などの動的コンテンツは後で移動されますが、能力やギアの統計情報などの静的コンテンツのXMLに固執している可能性があります。できるだけ早くXMLを使用してください。
これを行うために、私は戦闘フェイズの開始時に、最初にキャラクター、次にこのキャラクターに関連する能力などをXML文書にロードします。ロードの
var loadXMLFile = function(filename) {
req = new XMLHttpRequest();
req.onreadystatechange = function() {
return req.responseXML;
}
req.open("GET", filename, true);
req.send();
}
例とデータを操作する:
は、これを行うために、私は、ファイル名を取り「loadXMLFile」機能を、持っているこれで私の意図はした
function Character(id) {
doc = loadXMLFile("characters.xml");
characters = doc.getElementsByTagName("Character");
続行する前に関数呼び出しが戻り値を待機するようにします。質問のタイトルからわかるように、これは機能しません。
キャッチされない例外TypeError:代わりに、できるだけ早く私は、データを操作しようとして、例の3行目、私は、次のランタイムエラーを受け取り、私はロードし、一例が示しているように未定義の「getElementsByTagNameの」メソッドを呼び出すことはできません私のコンストラクタ内のこれらのXMLファイルは、XMLファイルを使用してクラスを生成します。したがって、readystatechangeイベントハンドラ内で別の関数を呼び出す構造は、あまり好ましくありません。別のイベントハンドラを作成するために、私はこれを行うどこでもXML読み込みコードを繰り返す必要がありますか?
真偽については、コードは実際には間違っていました。私は自分のコードでfalseを使用していました。なぜ私はXMLとJSの例が彼らが何をしたのかを読んでいたはずです。 戻り値をsend()の後に移動しましたが、同様のエラーが発生しましたが、「未定義」ではなくdoc変数が「null」です。 jQueryは実際にゲームを構築するのと同じように、JSの学習経験もありますが、企業も同様に望んでいるようです。 – SimonPip