using UnityEngine; using System.Collections; using UnityEngine.UI; using AX.MessageSystem; using AX.NetworkSystem; public class MakeScorePageControl : MonoBehaviour { // Use this for initialization public int pageCount = 60; public int currentPage = 1; public int numberEachPage = 8; public GameObject itemPrefab; private int startPage = 1; private int endPage; void Start() { getPageDataRequest(); MessageDispatcher.AddListener("GET_NON_MARKING_EXAMINATION_INFOS_REFRESH", pageChanged); } void OnDestroy() { MessageDispatcher.RemoveListener("GET_NON_MARKING_EXAMINATION_INFOS_REFRESH", pageChanged); } // Update is called once per frame void Update() { } //请求服务端考试数据 void getPageDataRequest() { NetworkManager.Default.SendRequestAsync("GET_NON_MARKING_EXAMINATION_INFOS_REQUEST", new PagingRequestInfo { CurrentPage = currentPage, NumberPerPage = numberEachPage, Pattern = (int)ExamInfoHelpClass.applicationMode }); } //刷新页码 private void changePagePanel(bool flag) { foreach (Transform child in transform) { Destroy(child.gameObject); } if (flag) { startPage = currentPage; endPage = currentPage + 7; if (endPage > pageCount) { endPage = pageCount; } } else { endPage = currentPage; startPage = currentPage - 7; } for (int startPage = this.startPage; startPage <= endPage; startPage++) { GameObject item = Instantiate(itemPrefab) as GameObject; item.transform.parent = transform; //item.transform.localScale = new Vector3(1, 1, 1); item.name = "Item"; item.GetComponent().group = GetComponent(); item.GetComponent().setPage(startPage); if (startPage == currentPage) { item.GetComponent().isOn = true; } } } //换页请求返回后刷新页码 private void pageChanged(IMessage message) { PagingReplyInfo pair = (PagingReplyInfo)(message.Data); currentPage = pair.CurrentPage; numberEachPage = pair.NumberPerPage; pageCount = pair.PageCount; if (currentPage < startPage) { changePagePanel(false);//向前刷新 } else if (currentPage > endPage || currentPage == 1) { changePagePanel(true);//向后刷新 } else //只改变选中页码 { foreach (Transform child in transform) { if (child.GetComponent().page == currentPage) { child.GetComponent().isOn = true; } } } } public void selectPage(int page) { currentPage = page; getPageDataRequest(); } public void upPage() { if (currentPage == 1) return; currentPage--; getPageDataRequest(); } public void downPage() { if (currentPage == pageCount || pageCount==0) return; currentPage++; getPageDataRequest(); } }