• cocos2d js ScrollView的使用方法


    游戏中非常多须要用到ScrollView的情况,也就是须要滚动一片区域。

    这里有两种实现方法,一种是使用cocos studio的方式,另外一种是手写代码。先看第一种

    第一种记得在设置滚动区域时选取裁剪项。

            var size = cc.winSize;
             
            //读取json文件
            var root = ccs.uiReader.widgetFromJsonFile(res.listJson);
           this.addChild(root);
           //获取在cocos studio里面设定好的scrollView
            var missionlist = ccui.helper.seekWidgetByName(root, "MissionList");
           //设定垂直朝向滚动
            missionlist.setDirection(ccui.ScrollView.DIR_VERTICAL);
            missionlist.setTouchEnabled(true);
            missionlist.setBounceEnabled(true);
            missionlist.setVisible(true);
            //设置大小
            missionlist.setSize(cc.size(960, 400)); 
            //设置能够滚动区域       
            var len = 9;
            missionlist.setInnerContainerSize(cc.size(960, 80* len));
            missionlist.y = size.height/2;
            missionlist.x = size.width/2;
            missionlist.setAnchorPoint(cc.p(0.5,0.5));
           //设置滚动的项目
            for(var i = 0; i < len; i++){
    	        var sprite = new cc.Sprite(res.item_png);
    	        missionlist.addChild(sprite);
    	        sprite.x = missionlist.width/2;
    	        sprite.y = missionlist.getInnerContainerSize().height + 40 - (i+1)*80;
    	        sprite.setAnchorPoint(cc.p(0.5,0.5));
            }
             missionlist.jumpToTop();
    
    另外一种。手写代码
            var listView = ccui.ScrollView.create();
            listView.setDirection(ccui.ScrollView.DIR_VERTICAL);
            listView.setTouchEnabled(true);
            listView.setBounceEnabled(true);
            listView.setSize(cc.size(960, 400));
            listView.x = size.width/2;
            listView.y = size.height/2;
            listView.setAnchorPoint(cc.p(0.5,0.5));
            this.addChild(listView);
           listView.setInnerContainerSize(cc.size(960, 80*9));
            for(var i =0; i < 9; i++){
             var sprite = new cc.Sprite(res.item_png);
             listView.addChild(sprite);
             sprite.x= listView.width/2;
             sprite.y= listView.getInnerContainerSize().height + 40 - (i+1)*80;
             sprite.setAnchorPoint(cc.p(0.5,0.5));
            }
    
            listView.jumpToTop();
    以下是左右滑动的代码演示样例
    
    var HelloWorldLayer = cc.Layer.extend({
        sprite:null,
        ctor:function () {
    
    
            this._super();
    
    
            var size = cc.winSize;
            
            var listView = new ccui.ScrollView();
            listView.setDirection(ccui.ScrollView.DIR_HORIZONTAL); 
            listView.setTouchEnabled(true);  
            listView.setBounceEnabled(true); 
            listView.setSize(cc.size(512, 200));  
            listView.x = size.width/2;  
            listView.y = size.height/2;
            listView.setAnchorPoint(cc.p(0.5,0.5));  
            this.addChild(listView);
            listView.setInnerContainerSize(cc.size(128*6, 200));
            for(var i =0; i < 6; i++){  
            <span style="white-space:pre">	</span>var sprite = new cc.Sprite(res.item_png);  
            <span style="white-space:pre">	</span>listView.addChild(sprite);
            <span style="white-space:pre">	</span>
            <span style="white-space:pre">	</span>sprite.x= i*130 + 40;
            <span style="white-space:pre">	</span>sprite.y= listView.getInnerContainerSize().height/2;  
            <span style="white-space:pre">	</span>sprite.setAnchorPoint(cc.p(0.5,0.5));
            }  
    
    
            listView.jumpToLeft();  
            cc.log("ben guo...");
            return true;
        }
    });
    
    
    var HelloWorldScene = cc.Scene.extend({
        onEnter:function () {
            this._super();
            var layer = new HelloWorldLayer();
            this.addChild(layer);
        }
    });
    
    
    



    
    

  • 相关阅读:
    测试策略如何制定
    python atexit模块和register函数
    使用Redis实现异步消息队列
    python 处理中文 读取数据库输出全是问号
    TCP和UDP的区别和优缺点
    怎样ping网络
    ImportError: libpng12.so.0: cannot open shared object file: No such file or directory
    tensorrtx/retinaface/calibrator.cpp:4:31: 致命错误:opencv2/dnn/dnn.hpp:没有那个文件或目录
    编译tensorrtx/retinaface遇到报错/usr/local/cuda/include/vector_types.h(421): error: identifier "constexpr" is undefined
    RetinaFace.cpp:112:37: 错误:‘std::chrono’尚未声明
  • 原文地址:https://www.cnblogs.com/cynchanpin/p/6715866.html
Copyright © 2020-2023  润新知