cocos2d js 3.2PageView的简单使用

前端之家收集整理的这篇文章主要介绍了cocos2d js 3.2PageView的简单使用前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

PageView在GUITest中可以看到相关的示例代码,简单的使用代码如下:

  1. var PageViewScene = cc.Scene.extend({
  2. pageView : null,pageIdx : 0,onEnter:function () {
  3. this._super();
  4.  
  5. var winSize = cc.winSize;
  6.  
  7. // var sprBg = new cc.Sprite(res.PageBg_png);
  8. // sprBg.attr({
  9. // x : winSize.width/2,// y : winSize.height/2
  10. // });
  11. // this.addChild(sprBg);
  12.  
  13. // ccui系列与cc系列基本通用
  14. var img = new ccui.ImageView();
  15. img.loadTexture(res.PageBg_png);
  16. img.attr({
  17. x : winSize.width/2,y : winSize.height/2
  18. });
  19. // img.x = winSize.width/2;
  20. // img.y = winSize.height/2;
  21. this.addChild(img);
  22.  
  23. // 页面
  24. this.pageView = new ccui.PageView();
  25. this.pageView.setTouchEnabled(true);
  26. this.pageView.setContentSize(winSize.width,winSize.height);
  27. // this.pageView.x = winSize.width/2;
  28. // this.pageView.y = winSize.height/2;
  29.  
  30. for (var i = 0; i < 3; i++) {
  31. // 组织pageview
  32. var layout = new ccui.Layout();
  33. layout.setContentSize(winSize.width,winSize.height);
  34. var layoutRect = layout.getContentSize();
  35.  
  36. var img = new ccui.ImageView();
  37. img.loadTexture("res/page/boss_0"+(i+1)+"_normal.png");
  38. // img.setContentSize(layoutRect.width,layoutRect.height);
  39. img.x = layoutRect.width/2;
  40. img.y = layoutRect.height/2;
  41. layout.addChild(img);
  42.  
  43. // 设置layout的位置===无效设置
  44. // layout.x = winSize.width/2;
  45. // layout.y = winSize.height/2;
  46.  
  47. // 加入到pageview
  48. this.pageView.addPage(layout);
  49. }
  50.  
  51. this.pageView.addEventListener(this.pageViewEvent,this);
  52.  
  53. this.addChild(this.pageView);
  54. // 加入按键时间监听 对于本层
  55. cc.eventManager.addListener({
  56. event : cc.EventListener.KEYBOARD,// 按键监听
  57. onKeyPressed : this.onKeyPressed,onKeyReleased : this.onKeyReleased
  58. },this);
  59. },pageViewEvent: function (sender,type) {
  60. switch (type) {
  61. case ccui.PageView.EVENT_TURNING:
  62. var pageView = sender;
  63. cc.log("page:" + pageView.getCurPageIndex());
  64. break;
  65. default:
  66. break;
  67. }
  68. },onKeyPressed : function(key,event) {
  69. // android设备上 引擎可能貌似无法处理按下操作
  70. },onKeyReleased : function(key,event) {
  71. // 所有逻辑在弹起时做
  72. cc.log("key:" + key);
  73. switch (key) {
  74. // android TV: 左:159 右:160 上:161 下:162 OK:163 MENU:18 BACK:6
  75. case TagOfKeyTv.Left: // 上 android:161 win32:28
  76. event.getCurrentTarget().pageIdx++;
  77. event.getCurrentTarget().pageView.scrollToPage(event.getCurrentTarget().pageIdx);
  78. break;
  79. case TagOfKeyTv.Right:
  80. event.getCurrentTarget().pageIdx--;
  81. event.getCurrentTarget().pageView.scrollToPage(event.getCurrentTarget().pageIdx);
  82. break;
  83.  
  84. default:
  85. break;
  86. }
  87. }
  88. });

里面加入了按键的相关处理,不需要的可以直接无视。

注意cc系列和ccui系列是互相通用的。

猜你在找的Cocos2d-x相关文章