发一个Cocos2d-js的

功能:想访问json文件获取数据。

习惯的方式是这样

$.get( "test.json", function( data ) {
  alert( "Data Loaded: " + data );
});


```

我完全可以自己写一个AJAX方式获取JSON,但是考虑到平台间的切换和后续功能扩展,所以尽可能不使用第三方库或者原生JS实现。以免导致未来的冲突问题。

现在系统里面明明有project.json文件,它是怎么加载的呢?于是我看到了这样的源码。请注意cc._isNodeJs也就是说有可能切换到未来运行的时候有可能切换到NodeJs中去。

_loadTxtSync: function (url) {
        if (!cc._isNodeJs) {
            var xhr = this.getXMLHttpRequest();
            xhr.open("GET", url, false);
            if (/msie/i.test(navigator.userAgent) && !/opera/i.test(navigator.userAgent)) {
                // IE-specific logic here
                xhr.setRequestHeader("Accept-Charset", "utf-8");
            } else {
                if (xhr.overrideMimeType) xhr.overrideMimeType("text\/plain; charset=utf-8");
            }
            xhr.send(null);
            if (!xhr.readyState == 4 || xhr.status != 200) {
                return null;
            }
            return xhr.responseText;
        } else {
            var fs = require("fs");
            return fs.readFileSync(url).toString();
        }
    }


```


最后我获取json的代码就变更为这样

var txt = cc.loader._loadTxtSync("res/json/list.json");
var data = JSON.parse(txt);


```


总结给各位看见的代码不是简单而是精悍。

收藏先,试试先。。。