Creator 2.4.2版本,Mac
想基于PageView实现一个无线循环的全屏页面视图,原理就是:
建立三个page:page_1、page_2、page_3;初始定位到page_2;
当滑动到page_1时,删除page_3,新建一页插入到最前面,然后定位到page_2;
当滑动到page_3时,删除page_1,新建一页插入到最后面,然后定位到page_2。
目前遇到两个问题:
1.下滑时功能没问题,但上滑时,能插入一个page_3,但神奇的是,再次上滑Page Event居然不响应了,从而无法实现一直上滑;
记得之前论坛看过有人说removePage有可能会清空监听的事件,不知道是否有这个bug、有没有修复;
2.下滑时有闪屏现象,不知道该如何消除;看之前的demo有调用PageView的update接口,但现在已经没有这个接口了。
核心代码:
OnPageViewEvent(event, custom){
let pageView = this.m_pageviewNode.getComponent(cc.PageView);
let currPageIndex = pageView.getCurrentPageIndex();
cc.log("OnPageViewEvent begin, page index="+currPageIndex);
if(currPageIndex != 1){ // page changed
let pages = pageView.getPages();
if(currPageIndex == 0){
let lastPage = pages[pages.length-1];
pageView.removePage(lastPage);
pageView.insertPage(lastPage, 0); // add on top
pageView.scrollToPage(1,0);
pageView.setCurrentPageIndex(1);
}
else if(currPageIndex == (pages.length-1)){
let firstPage = pages[0];
pageView.removePage(firstPage);
pageView.addPage(firstPage); // add in bottom
pageView.scrollToPage(1,0);
pageView.setCurrentPageIndex(1);
}
}
else{
cc.log("Page not change.");
}
cc.log("OnPageViewEvent end, page index="+currPageIndex);
}
附件为demo示例,麻烦帮忙查看下,多谢!PageViewTest.zip (884.0 KB)