test.ts 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. import { _decorator, Component, EventTouch, instantiate, Label, Node, Prefab, UITransform, Vec3 } from 'cc';
  2. import { http } from '../script/http';
  3. import { getTestUserListMessage } from '../data/data';
  4. const { ccclass, property } = _decorator;
  5. @ccclass('test')
  6. export class test extends Component {
  7. @property(Node) bg: Node = null;
  8. @property(Node) level_list: Node = null;
  9. @property(Prefab) level_item: Prefab = null;
  10. @property(Node) lab_info: Node = null;
  11. @property(Node) btn_click: Node = null;
  12. private m_data_list: string[] = []
  13. private x_len: number = 0;
  14. private m_page_number: number = 1
  15. private m_page_total_number: number = 3
  16. protected start(): void {
  17. // let self = this;
  18. // this.btn_click.on(Node.EventType.TOUCH_END, () => {
  19. // http.run_get("https://static.hainanmlwl.com/smistatic/user_test.json", (err, data) => {
  20. // if (!err) {
  21. // console.log(" -- -", http.static_domain + http.get_test_user_list())
  22. // // let _data:getTestUserListMessage = JSON.parse(data)
  23. // self.lab_info.getComponent(Label).string = data;
  24. // }
  25. // })
  26. // })
  27. this.updatePage(this.m_page_number)
  28. this.initGameList()
  29. this.initLevelListTouch()
  30. }
  31. initGameList() {
  32. this.level_list.removeAllChildren()
  33. for (let index = 0; index < this.m_data_list.length; index++) {
  34. const element = this.m_data_list[index]
  35. let item = instantiate(this.level_item)
  36. item.parent = this.level_list
  37. }
  38. }
  39. initLevelListTouch() {
  40. this.level_list.on(Node.EventType.TOUCH_START, (et: EventTouch) => {
  41. })
  42. this.level_list.on(Node.EventType.TOUCH_MOVE, (et: EventTouch) => {
  43. let p = new Vec3(et.getUILocation().x, et.getUILocation().y)
  44. let n_p = this.level_list.parent.getComponent(UITransform).convertToNodeSpaceAR(p)
  45. let pos = this.level_list.parent.getComponent(UITransform).convertToWorldSpaceAR(this.level_list.position)
  46. if (this.x_len == 0) {
  47. this.x_len = (et.getUILocation().x - pos.x) * 2;
  48. }
  49. this.level_list.position = new Vec3(n_p.x - this.x_len, this.level_list.position.y);
  50. })
  51. this.level_list.on(Node.EventType.TOUCH_END, (et: EventTouch) => {
  52. this.x_len = 0
  53. console.log('TOUCH_END ',this.level_list.position.x)
  54. this.moveScroll()
  55. this.level_list.position = new Vec3(0,this.level_list.position.y)
  56. })
  57. this.level_list.on(Node.EventType.TOUCH_CANCEL, (et: EventTouch)=> {
  58. this.x_len = 0
  59. console.log('TOUCH_CANCEL ',this.level_list.position.x)
  60. this.moveScroll()
  61. this.level_list.position = new Vec3(0,this.level_list.position.y)
  62. })
  63. }
  64. moveScroll() {
  65. if(this.level_list.position.x < 0) { // 向左滑动
  66. console.log('向左滑动')
  67. this.onNextPage()
  68. }
  69. if(this.level_list.position.x > 0) { // 向右滑动
  70. this.onUpPage()
  71. }
  72. }
  73. updatePage(page: number) {
  74. this.m_page_number = page
  75. if (page == 1) {
  76. this.m_data_list = ['1', '2', '3', '4', '5', '6']
  77. } else if(page == 2) {
  78. this.m_data_list = ['1', '2', '3', '4']
  79. } else {
  80. this.m_data_list = ['1']
  81. }
  82. this.initGameList()
  83. }
  84. onUpPage() {
  85. let c_page_number = this.m_page_number - 1
  86. if(c_page_number < 1) {
  87. return
  88. }
  89. this.updatePage(c_page_number)
  90. }
  91. onNextPage() {
  92. let c_page_number = this.m_page_number + 1
  93. if(c_page_number > this.m_page_total_number) {
  94. return
  95. }
  96. this.updatePage(c_page_number)
  97. }
  98. }