import { _decorator, Component, EventTouch, instantiate, Label, Node, Prefab, UITransform, Vec3 } from 'cc'; import { http } from '../script/http'; import { getTestUserListMessage } from '../data/data'; const { ccclass, property } = _decorator; @ccclass('test') export class test extends Component { @property(Node) bg: Node = null; @property(Node) level_list: Node = null; @property(Prefab) level_item: Prefab = null; @property(Node) lab_info: Node = null; @property(Node) btn_click: Node = null; private m_data_list: string[] = [] private x_len: number = 0; private m_page_number: number = 1 private m_page_total_number: number = 3 protected start(): void { // let self = this; // this.btn_click.on(Node.EventType.TOUCH_END, () => { // http.run_get("https://static.hainanmlwl.com/smistatic/user_test.json", (err, data) => { // if (!err) { // console.log(" -- -", http.static_domain + http.get_test_user_list()) // // let _data:getTestUserListMessage = JSON.parse(data) // self.lab_info.getComponent(Label).string = data; // } // }) // }) this.updatePage(this.m_page_number) this.initGameList() this.initLevelListTouch() } initGameList() { this.level_list.removeAllChildren() for (let index = 0; index < this.m_data_list.length; index++) { const element = this.m_data_list[index] let item = instantiate(this.level_item) item.parent = this.level_list } } initLevelListTouch() { this.level_list.on(Node.EventType.TOUCH_START, (et: EventTouch) => { }) this.level_list.on(Node.EventType.TOUCH_MOVE, (et: EventTouch) => { let p = new Vec3(et.getUILocation().x, et.getUILocation().y) let n_p = this.level_list.parent.getComponent(UITransform).convertToNodeSpaceAR(p) let pos = this.level_list.parent.getComponent(UITransform).convertToWorldSpaceAR(this.level_list.position) if (this.x_len == 0) { this.x_len = (et.getUILocation().x - pos.x) * 2; } this.level_list.position = new Vec3(n_p.x - this.x_len, this.level_list.position.y); }) this.level_list.on(Node.EventType.TOUCH_END, (et: EventTouch) => { this.x_len = 0 console.log('TOUCH_END ',this.level_list.position.x) this.moveScroll() this.level_list.position = new Vec3(0,this.level_list.position.y) }) this.level_list.on(Node.EventType.TOUCH_CANCEL, (et: EventTouch)=> { this.x_len = 0 console.log('TOUCH_CANCEL ',this.level_list.position.x) this.moveScroll() this.level_list.position = new Vec3(0,this.level_list.position.y) }) } moveScroll() { if(this.level_list.position.x < 0) { // 向左滑动 console.log('向左滑动') this.onNextPage() } if(this.level_list.position.x > 0) { // 向右滑动 this.onUpPage() } } updatePage(page: number) { this.m_page_number = page if (page == 1) { this.m_data_list = ['1', '2', '3', '4', '5', '6'] } else if(page == 2) { this.m_data_list = ['1', '2', '3', '4'] } else { this.m_data_list = ['1'] } this.initGameList() } onUpPage() { let c_page_number = this.m_page_number - 1 if(c_page_number < 1) { return } this.updatePage(c_page_number) } onNextPage() { let c_page_number = this.m_page_number + 1 if(c_page_number > this.m_page_total_number) { return } this.updatePage(c_page_number) } }