Lakeshore 中Ajax组件教程,包括如何处理获取的json问题

Lakeshore 中Ajax组件教程

可能有些不知道Ajax是做什么的,其实我们可以直接从百度找到答案,是一种在浏览器中与Web服务器之间使用异步数据传输的技术,即通过HTTP请求与服务器进行消息传输的技术,可以在不刷新浏览器的情况下更新数据。
所以我们可以利用Ajax组件来与服务器进行消息传输,通过此技术我们可以利用lakeshore做网络游戏。下面我们详细讲解Lakeshore如何使用Ajax组件与服务器进行通讯。
下载最新版Lakeshore,并打开,创建一个Ajax测试项目,取名为:AjaxDemo,如图:
Lakeshore 中Ajax组件教程,包括如何处理获取的json问题
点击“确定”按纽,项目创建成功,如图:
Lakeshore 中Ajax组件教程,包括如何处理获取的json问题
Ajax组件与普通组件不一样,Ajax是工具内置的一种组件,与System组件一样,不需要将此组件添加到场景中,可以直接引用。点击按纽,切换到事件表编辑栏,如图:
Lakeshore 中Ajax组件教程,包括如何处理获取的json问题
点击事件表工具栏里的“新建事件”按纽,在弹出的“选择类型”对话框中选择目标“System”组件,如图:
Lakeshore 中Ajax组件教程,包括如何处理获取的json问题
双击进行“条件列表”中,找到“场景初始化完成”条件,如图:
Lakeshore 中Ajax组件教程,包括如何处理获取的json问题
双击选择,并确定,如图:
Lakeshore 中Ajax组件教程,包括如何处理获取的json问题
点击“添加动作”,选择目标“ajax”,如图:
Lakeshore 中Ajax组件教程,包括如何处理获取的json问题
双击“Ajax”,进入“动作列表”中,选择“发送数据”,如图:
Lakeshore 中Ajax组件教程,包括如何处理获取的json问题
双击“发送数据”,打开“发送数据”属性设置对话框,如图:
Lakeshore 中Ajax组件教程,包括如何处理获取的json问题
这里有四个选项,“标记”,“地址”,“数据”,“类型”。下面解释下这四个选项如何填写:
在讲解如何填写之前先解释下客户端与服务器的消息收发机制。
何为客户端,你可以认为是你利用Lakeshore做的游戏,也就是通常所说的前端。
何为服务端,实际上就是我们通常所听到的服务器,服务器主要用于数据保存,数据计算,数据同步等操作。
通俗的讲,比如我们通常所讲的游戏中的排行版,A玩家的分数在全国所占百分比,B玩家的分数在全国所占百分比等,这个百分比是由谁算出来的,自然是服务端,因为作为客户端的A来讲,是不可能知道客户端B的分数的,也就没法算出百分比,所以这个百分比的计算得交给服务器来计算,服务器计算完毕之后,分别告诉客户端A与客户端B。如图:
Lakeshore 中Ajax组件教程,包括如何处理获取的json问题
也就是说服务器是一个中心处理器,A,B只是显示处理后的结果。
1、标记:实际上是为了区分多条消息所设定的一个标记名,后面可通过此标记名来获取服务器发的不同消息,我们可以自己定义这些标记名,这个与服务器没有任何关系,假如服务器给我们发了三条消息,分别为:“收到消息1”,“收到消息2”,“收到消息3”,我们可以在此设定这三条消息的标记分别为:“message1”,“message2”,“message3”,对于每条消息来讲,只需一个消息标记,这里取“message1”。
2、地址:这里填写与服务器通读的地址,一般情况下,这里由服务器告诉。
3、数据:你与服务器通讯时所包含的内容,内容格式需要与服务器进行约定,这里数据格式只支持字符串,比如“score:20”,服务器收到这个后就可以知道当前的分数。
4、类型:分为POST与GET,这是与服务器交互的方式,通常应该与服务器保持一致。
如图:
Lakeshore 中Ajax组件教程,包括如何处理获取的json问题
有时候,我们不需要向服务器传递数据,只需要通知下服务器,那么,可以使用动作:。Lakeshore 中Ajax组件教程,包括如何处理获取的json问题
上面所讲都是向服务器传递数据,那么,服务器收到我们传递过去的数据后,进行处理,处理完成之后,通常会向我们发送数据,也就是说,我们需要有个接收服务器数据的入口,而Lakeshore也提供了接收服务器数据的方法。
点击“新建事件”,在弹出的“选择条件目标”对话框中,我们选择“Ajax”组件,如图:
Lakeshore 中Ajax组件教程,包括如何处理获取的json问题
双击“Ajax”,在弹出的“条件列表”中选择“请求完成时”,如图:
Lakeshore 中Ajax组件教程,包括如何处理获取的json问题
双击,弹出“请求完成时”属性设置对话框,如图:
Lakeshore 中Ajax组件教程,包括如何处理获取的json问题
有一个参数“标记”,之前我们向服务器发送了以“message1”为标记的数据,服务器处理完毕之后,会将“message1”所带的数据返回给我们,所以我们这里填“message1”。为了取得“message1”所带的数据,我们先在场景插入一个文本组件,如图:
Lakeshore 中Ajax组件教程,包括如何处理获取的json问题
再切换到事件表,在动作里显示得到的数据,如图:
Lakeshore 中Ajax组件教程,包括如何处理获取的json问题


另注:如果后台返回的是json格式数据,需要把Ajax获取到的值转换成json【JSON.parse(Ajax.getData(‘你的Ajax标记’)).字段名】