2

Flash CS6 を使用して、アニメーションをスプライトシートにエクスポートしました。これにより、png ファイルと json ファイルの 2 つのファイルが得られます。

これは json の簡略化されたバージョンです。

{"frames": 
{
    "movieclip 10000":
    {
        "frame": {"x":676,"y":0,"w":164,"h":280},
        "rotated": false,
        "trimmed": false,
        "spriteSourceSize": {"x":0,"y":0,"w":164,"h":280},
        "sourceSize": {"w":164,"h":280}
    },
    …
    "movieclip 10004":
    {
        "frame": {"x":671,"y":280,"w":164,"h":280},
        "rotated": false,
        "trimmed": false,
        "spriteSourceSize": {"x":0,"y":0,"w":164,"h":280},
        "sourceSize": {"w":164,"h":280}
    }
},
"meta": {
    "app": "Adobe Flash CS6",
    "version": "12.0.2.529",
    "image": "boom1 8B4 def.png",
    "format": "RGBA8888",
    "size": {"w":1024,"h":1000},
    "scale": "1"
}

ここでは特別なことは何もありません。ただし、ファイルは (textwrangler によると) UTF-16 リトル エンディアンでエンコードされています。これは Chrome では問題になりませんが、FF で json を解析すると「parsererror」が発生します。

ファイルのエンコーディングを変更すると、Firefox で問題なく動作します。

だからここに私の質問があります:(どのように)javascriptを使ってエンコーディングを変更できますか?

このスニペットは、json をロードする方法です。

$.ajax({
    type: "POST",
    url: this.json,
    scriptCharset: "utf-8",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function(json) {
        that.jsonLoadHandler(json);
    },
    error: function (xhr, textStatus, errorThrown) {
        that.errorHandler(xhr, textStatus);
    }
});

お時間をいただきありがとうございます。

4

1 に答える 1

0

contentType: "application/json; charset=utf-8" の代わりに、contentType: "application/json;" のみを使用します。これで問題が解決する場合があります。

于 2013-04-12T08:24:18.307 に答える