ScrollView滚动视图
在游戏开发过程中,由于手机屏幕空间有限,加上手指的灵动性,滑动成了最好的替换翻页的操作方式
ScrollView就是在这种需求驱动下的产物
cc.ScrollView和cc.ui.UIScrollView
前者是cocos2dx3.3原生的c++类,继承于cc.Layer
后者是QuickUI组件中的lua类,继承于cc.ClippingRectangleNode
quick中的cc.ui.UIScrollView用法
1 2 3 4 5 6 7 8 9 10 11 |
local visibleSize = cc.Director:getInstance():getVisibleSize() local viewRect = cc.rect(0,0,visibleSize.width,visibleSize.height) local scrollView = cc.ui.UIScrollView.new({ viewRect = viewRect }) local scrollNode = display.newLayer() scrollView:addScrollNode(scrollNode) -- 注册滚动事件 通过event.name区分 scrollView:onScroll(function(event) -- TODO: sth end) |
在实际运用过程中,我发现quick的滚动组件存在性能问题(windows上),一旦组件多了之后滚动不流畅,卡顿严重
原生cc.ScrollView用法
1 2 3 4 5 6 7 8 9 |
local visibleSize = cc.Director:getInstance():getVisibleSize() local scrollView = cc.ScrollView:create(visibleSize) local scrollNode = cc.Layer:create() -- 等同于display.newLayer() scrollView:setContainer(scrollNode) -- 为scrollView添加滚动事件 scrollView:setDelegate() scrollView:registerScriptHandler(function() -- TODO: sth end,0) -- 0为滚动事件 1为缩放事件 |