会php,刚刚接触Cocos creator,还没有太搞懂,想要问下Cocos creator怎么和php交换数据呢,求指点一下。
我自己试了下载js代码里边写ajxa请求php,但是好像不支持ajxa,请问下大神应该怎么做,谢谢谢谢。
会php,刚刚接触Cocos creator,还没有太搞懂,想要问下Cocos creator怎么和php交换数据呢,求指点一下。
我自己试了下载js代码里边写ajxa请求php,但是好像不支持ajxa,请问下大神应该怎么做,谢谢谢谢。
可以的 代码里直接用$.ajax({ …}) 发布出来之后修改一下index 引入jquery 就行了
if(this.label.string == '你好'){
this.label.string = this.data2;
}else{
var url = "http://localhost/000/1.txt";
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function () {
if (xhr.readyState == 4 && (xhr.status >= 200 && xhr.status < 400)) {
var response = xhr.responseText;
console.log(response);
}
};
xhr.open("GET", url, true);
var ts = xhr.send();
this.label.string = ts;
}
这个是我复制的官方的连接历程,这里我get获取到了值,然后把值赋给this.label.string 这个标签,执行后不显示,是不是我理解错误了呢?
ts有值么 顺序不太对吧? 是不是应该放进xhr.onreadystatechange = function () {
if (xhr.readyState == 4 && (xhr.status >= 200 && xhr.status < 400)) {
var response = xhr.responseText;
console.log(response);
}
};这个里面
我是直接复制的帮助文档里边的代码,测试的时候 xhr.send() 是有返回值的,所以我把变量 ts 等于返回的值,这样不对吗?
哦哦 看到了 this.label.getComponet(cc.Label).string
这一句式什么意思?是放在哪里的?
把你那个this.label.string = ts 换成这个 = ts
this.label.getComponet(cc.Label).string = ts;
this.label.string = ts;
这样?
…下面哪句去掉吧 上面那个拼错了 getComponent
好的好的谢谢,我试试
var ts = “0”;
var url = “http://localhost/000/1.txt”;
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function () {
if (xhr.readyState == 4 && (xhr.status >= 200 && xhr.status < 400)) {
var response = xhr.responseText;
console.log(response);
}
ts = response;
};
xhr.open("GET", url, true);
xhr.send();
//ts = "1231";
this.label.getComponent(cc.Label).string = ts;
//this.label.string = ts;
这样了,代码现在完全可以用了,也可以给标签赋值了。但是好像不知道怎么把XMLHttpRequest 里边的值赋给 ts,从函数里边写的话赋值也不会有效。 大哥你看下对吗?要怎么弄ts才能等于 123,123是那个txt文件返回的值
函数里面写的话给那个函数最后.bind(this) 你一步步查一下哪里有值 要是没有就看你的请求的文件是否有问题 有的话看看赋值的对象有没有问题 应该有报错的吧?
Simulator : 89:ReferenceError: response is not defined
如果把 XMLHttpRequest 里边的变量 response 直接拿到外边赋值的话,会出现这个错误。
但是在 XMLHttpRequest 里边赋值的话,没有错误提示,但是 ts的值还是0.
执行日志打印出来的结果都是对的。值夜取到了。就是不知道怎么把值赋给外边的
大哥还在吗?可以帮我看下吗?
你在函数内和函数外环境是不一样的 在函数内一是要bind(this) 二是要确定你要赋的值是不是你要的
试试这个代码
这个代码可以了。非常感谢你呢!!! 
有点还不是很明白的是,这里不能弄通用的写法吗?就好像php的写一个函数方法,然后很多地方调用? 大概就是这样的函数我想很多地方用,那么函数内的东西有没有办法弄到函数外边然后经过处理去执行游戏的一部分。 可能是我之前没有做过游戏,所以对游戏的一些逻辑部分弄不太明白。 大哥有时间了帮我解答下,谢谢
还有就是很奇怪的是大哥你给的代码模拟器是正常的,但是放到浏览器就不行了。我用的谷歌浏览器,点击没有反应这个样子