升级到cocos2d-x 3.10之后被遗忘的ccui.PageView.pageTurningEvent()
来源:互联网 发布:手机网络加速设置 编辑:程序博客网 时间:2024/05/17 02:23
项目升级到cocos2d-x 3.10,本想着一切顺利,但调试了一把发现PageView
的翻页事件不正常了,代码如下:
local pageViewEvent = function(sender, eventType) if eventType == ccui.PageViewEventType.turning then local curPage = self.pageview:getCurrentPageIndex() self.btnPrev:setVisible(curPage > 0) self.btnNext:setVisible(curPage < kTotalPages - 1) end end self.pageview:addEventListener(handler(self, self.pageViewEvent))
本意是在翻页的时候调用一下pageViewEvent
,更新ui事件。但实际运行却没有更新。加了日志,发现函数没有被调用,这就奇怪了,看来问题极有可能出现在引擎内部,于是打开UIPageView.cpp
,果然发现问题。
之前的cocos2d-x版本里,会在翻页的时候调用pageTurningEvent()
,该函数内部会调用lua端注册的事件处理函数,放到上面的例子,即pageViewEvent
。但在cocos2d-x 3.10里,该函数似乎被忘记调用了,查找整个cocos2dx源码,无一处调用该函数。对比新旧版本,PageView
的基类由Layout
调整为了ListView
,也许在这次改动之中漏掉了对翻页的处理。
在官方更新之前,只好暂时自行补救一下了。
/* * UIScrollView.h */ class UIScrollView : public Layout { ... protected: // 添加函数声明 virtual void autoScrollBegin(){} }/* * UIScrollView.cpp */void ScrollView::startAutoScroll(const Vec2& deltaMove, float timeInSec, bool attenuated){ ... // 函数末尾添加调用 autoScrollBegin();}/* * UIPageView.h */class PageView {...protected: // 添加声明 virtual void autoScrollBegin() override;}/* * UIPageView.cpp */// 添加实现,调用pageTurningEvent()void PageView::autoScrollBegin(){ pageTurningEvent();}
这样翻页时就可以正常通知到lua端了。
0 0
- 升级到cocos2d-x 3.10之后被遗忘的ccui.PageView.pageTurningEvent()
- cocos2d-x v3.10之ccui.PageView 翻页实现
- Cocos2d-x PageView的使用
- cocos2d-x中ccui.checkbox的使用方法
- cocos2d-x 3.x pageView的使用
- 详解quick-cocos2d-x pageview的demo
- ccui.pageView基础应用
- 怎么样升级cocos2d-x 2.2之后的版本
- cocos2d-x 3.0 PageView、ListView
- 升级Xcode到6.1之后使用iPhone6真机测试cocos2d-x报错不支持arm64的解决方案,Undefin ...
- 升级Xcode到6.1之后使用iPhone6真机测试cocos2d-x报错不支持arm64的解决方案(转)
- cocos2d pageView的使用
- 【cocos2d-x 3.5】Lua 加载cocostudio的PageView
- 升级到cocos2d-x 2.0.2后的API差异
- cocos2d-x mruby学习笔记 CCUI库的一个小BUG
- cocos2d js Pageview的用法
- Cocos2d-lua PageView的实现
- cocos2d-x pageView左右循环滑动
- wait和waitpid函数
- 《C和指针》读书笔记
- JavaWeb学习笔记——JSP
- Java编写的 基于控制台的航班信息系统
- 第一篇博客
- 升级到cocos2d-x 3.10之后被遗忘的ccui.PageView.pageTurningEvent()
- android 初识Fresco
- 【HUSTOJ】1017: 三个整数是否相邻
- Java连MySQL的驱动mysql-connector-java-5.1.21-bin.jar的安装方法
- C语言2(程序结构)
- untiy 3d ShaderLab_第6章_VertexLit渲染路径_3_顶点照明和Unity存放光源的第二种方式
- iOS学习笔记-----UITextField与UITextView属性与方法
- iOS iPhone屏幕尺寸、分辨率及适配
- 《JAVA并发编程实战---读书笔记2》