0

作成中のゲーム用のサーバーを作成し、マップを生成しましたが、作成中のこのテスト クライアントでは正しく動作しません。

サイトをスクリプトとして追加し、スクリプトとして正常に動作していますが、jsfiddle の JavaScript を読み取ると、関数 callback() が定義されていないと表示されますが、明らかにそうであり、マップ オブジェクトを送信する必要があります。コンソールに表示されますが、エラーが発生するだけです... :/

JS Fiddle へのリンクは次のとおりです: http://jsfiddle.net/Tgwizman/9QrUF/

なぜそれが機能しないのか完全に迷っているので、皆さんがそれを理解できることを願っています...

4

5 に答える 5

6

jsfiddleでは、javascriptインクルードを使用してマップをロードした後にjavascriptコールバック関数が定義されますが、その時点ではまだコールバックは定義されていません。

これが固定フィドルです。

ソースの例:

<script>
var map;

function callback(cb) {
    map = cb;
    console.log(map);
}
</script>
<script src='http://mmorpg_server.jit.su/?map=0,0'></script>​
于 2012-04-15T06:58:21.530 に答える
3

ドロップダウン値をに変更しますno wrap (head)

スクリーンショット

http://jsfiddle.net/9QrUF/3/

于 2012-04-15T06:58:54.787 に答える
2

マップをロードする前に、コールバックを定義する必要があります。それ以外の場合は、未定義の関数を呼び出しています。外部スクリプトは任意の順序でダウンロードできますが、ページにコード化されている順序で実行されます。

<script>
    var map;
    //declare callback first before anything uses it
    function callback(cb) {
        map = cb;
        console.log(map);
    }
</script>

//this calls the callback it MUST be loaded after
<script src='http://mmorpg_server.jit.su/?map=0,0'></script>​
于 2012-04-15T06:57:16.087 に答える
0

これは、jsFiddleが常に完全に機能するとは限らないためです。

これが機能しているフィドルです

これは、jsfiddleがスクリプト要素を独自のラッパー(クロージャ)でラップしているため、スクリプト要素で宣言されている関数にアクセスできないために発生します。

気にしないでください、KARASZIIstvánJosephの答えはより良いです

于 2012-04-15T06:58:38.510 に答える
0
<script type="text/javascript">
var map;

function callback(cb)
 {
    map = cb;
    console.log(map);
}
</script>
<script src='http://mmorpg_server.jit.su/?map=0,0'> 
</script>​

これがうまくいくことを願っています!!!

于 2012-04-15T07:53:44.877 に答える