1.思路:找到领取按钮的点击事件,找到当点击按钮时使下一物品出现在原第一个物品位置的逻辑,找到这个逻辑中使物品刷新到第一个位置的方法,然后对该方法进行修改。
2.代码:
领取按钮的点击事件:
在taskItemRenderer的on_create方法中绑定领取按钮点击事件,
点击按钮时使下一物品出现在原第一个物品位置的逻辑:
点击领取按钮之后,调用DemonScrollProxy脚本中的GetDemonScrollTaskReward(taskCode, response, exception)方法把任务ID(taskCode)发送给后端,若发送的数据(taskCode)正确则触发回调函数(response),回调函数即:
DemonScrollProxy脚本中的GetDemonScrollTaskReward()方法:
DemonScrollView中调用的GetDemonScrollTaskReward()方法中的参数分别对应:
data.targetCode ——>taskCode 【发送给服务器的数据(data)】
——>response 【当发送给服务器的数据正确时,会触发回调函数fanction()】]
nil——>exception 【当发送的数据不正确时,会进行错误处理(exception)】
之后接收服务器处理好之后发回来的数据,在DemonScrollModule脚本中接收数据:
首先在DemonScrollModule脚本中注册网络事件,注册过程:
注册完事件后,在DemonScrollModule脚本中的on_netEvent(cmd, data)方法中接收服务器下发的注册好的网络事件和数据(data),on_netEvent(cmd, data)方法如下:
on_netEvent(cmd, data)方法中的cmd参数即是服务器下发的网络事件名称,判断是哪个事件然后进行相应的处理
点击按钮后与服务器的交互已经清楚,经过梳理我们发现在接收服务器下发的数据的时候,触发了DEMONSCROLL_UPDATE事件,经查询该事件在DemonScrollView中对应了一个RefreshScroll方法,该方法就是用来刷新物品列表的
set_scrollIndex()方法是移动listview,set_selectIndex是当listview打开时让它默认显示哪一个item