游戏中非常多须要用到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);
    }
});


cocos2d js ScrollView的使用方法的更多相关文章

  1. cocos2d js jsb XMLHttpRequest 中文乱码

    1.首先讲下怎样使用XMLHttpRequest 下面所说的是在cocos2d-x 2.2.2 或者 2.3 版本号中. 首先要明确cocos2d js事实上分两个版本号,一个是html5的版本号,另 ...

  2. 由js apply与call方法想到的js数据类型(原始类型和引用类型)

    原文地址:由js apply与call方法想到的js数据类型(原始类型和引用类型) js的call方法与apply方法的区别在于第二个参数的不同,他们都有2个参数,第一个为对象(即需要用对象a继承b, ...

  3. iOS之在webView中引入本地html,image,js,css文件的方法 - sky//////////////////////////////////////ZZZZZZZZZZZZZZZ

    iOS之在webView中引入本地html,image,js,css文件的方法   2014-12-08 20:00:16CSDN-sky_2016-点击数:10292     项目需求 最近开发的项 ...

  4. 原生js获取鼠标坐标方法全面讲解-zmq

    原生js获取鼠标坐标方法全面讲解:clientX/Y,pageX/Y,offsetX/Y,layerX/Y,screenX/Y 一.关于js鼠标事件综合各大浏览器能获取到坐标的属性总共以下五种:eve ...

  5. js巧用apply方法实现数组最值以及合并

    尽管js的apply方法在平常的使用中并不多见,但是在某些地方使用的还是很有帮助性的,这里就和大家说两个比较实用的例子:1.数组最大最小值 求数组中的最大最小值,js有相应的方法:Math.min() ...

  6. <js>实现回车键登陆方法,并处理谷歌与火狐不兼容的问题

    1.在body中添加onkeydown事件 <body onkeydown="keyLogin(event);">2.使用js相应登陆添加方法//添加回车登陆事件 fu ...

  7. js中的tostring()方法

    http://blog.sina.com.cn/s/blog_85c1dc100101bxgg.html js中的tostring()方法 (2013-11-12 11:07:43) 转载▼ 标签: ...

  8. js跳转页面方法大全

    js跳转页面方法大全<span id="tiao">3</span><a href="javascript:countDown"& ...

  9. 常见JS(JavaScript)冲突解决方法

    1.一般JS冲突解决办法 a.最容易出现的就是js的命名冲突 ①.变量名冲突 变量有全局变量和局部变量当全局变量变量和局部变量名称一致时,就会js冲突,由于变量传递数值或地址不同就会产生JavaScr ...

随机推荐

  1. bzoj 1831

    思路:随便猜一猜填的数字是不下降的,反证很好证明,然后就没了.. #include<bits/stdc++.h> #define LL long long #define fi first ...

  2. bzoj 1212: [HNOI2004]L语言

    思路:字典树+dp, dp[ i ] 表示 前缀到 i 能不能被理解, 如果dp[ i ] 是能被理解的那么, 把i + 1, i + 2 ....  在字典树上走,走到一个单词就转移. ,这样可行的 ...

  3. HBase结合MapReduce批量导入(HDFS中的数据导入到HBase)

    HBase结合MapReduce批量导入 package hbase; import java.text.SimpleDateFormat; import java.util.Date; import ...

  4. python之web框架(3):WSGI之web应用完善

    python之web框架(3):WSGI之web应用完善 1.上篇的web框架太low,只能实现回应固定页面.现在将它进行完善.首先将wsgi和web服务器进行分离,并给予它回复静态页面的能力. we ...

  5. 安装CDM遇到的坑

    其实主要就是一个坑,就是版本不对应的问题. 我的环境是centos6.5,而官方提供的版本是分别针对centos6和centos5的,之前我进行软件实施的时候,下载的是centos5...... ht ...

  6. 取得项目的 Git 仓库

    有两种取得 Git 项目仓库的方法.第一种是在现存的目录下,通过导入所有文件来创建新的 Git 仓库.第二种是从已有的 Git 仓库克隆出一个新的镜像仓库来. 在工作目录中初始化新仓库 要对现有的某个 ...

  7. React Native性能优化之可取消的异步操作

    前沿 在前端的项目开发中,异步操作是一个不可获取的,从用户的角度来说,异步操作所带来的体验是美妙的,但有时候也会带来一些性能隐患.比如说:有一个异步请求还没有返回结果,但是页面却关闭了,这时由于异步操 ...

  8. Java使用AES加密解密

    AES加密机制: 密码学中的高级加密标准(Advanced Encryption Standard,AES),又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准. 这个标准用来替代原先的 ...

  9. opencv 掩膜操作 滤波 卷积核定义 增强对比度 掩膜运算

    /* 矩阵的掩膜操作 0 掩膜mask 在这里进行增强对比度: [ [ 0,-1, 0 ], [-1, 5, -1], [ 0,-1, 0 ] ] 使用mask滑动图片每一个位置,进行卷积运算 这里这 ...

  10. [Assembly]汇编编写简易键盘记录器

    环境:Windows xp sp3工具:masmnotepad++ 首先列出本次编程程序要执行的步骤:(1).读取键盘所输入的字符(2).输出到屏幕上(3).完善Esc.Backspace.空格.回车 ...