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);
}
});
cocos2d js ScrollView的使用方法的更多相关文章
- cocos2d js jsb XMLHttpRequest 中文乱码
1.首先讲下怎样使用XMLHttpRequest 下面所说的是在cocos2d-x 2.2.2 或者 2.3 版本号中. 首先要明确cocos2d js事实上分两个版本号,一个是html5的版本号,另 ...
- 由js apply与call方法想到的js数据类型(原始类型和引用类型)
原文地址:由js apply与call方法想到的js数据类型(原始类型和引用类型) js的call方法与apply方法的区别在于第二个参数的不同,他们都有2个参数,第一个为对象(即需要用对象a继承b, ...
- iOS之在webView中引入本地html,image,js,css文件的方法 - sky//////////////////////////////////////ZZZZZZZZZZZZZZZ
iOS之在webView中引入本地html,image,js,css文件的方法 2014-12-08 20:00:16CSDN-sky_2016-点击数:10292 项目需求 最近开发的项 ...
- 原生js获取鼠标坐标方法全面讲解-zmq
原生js获取鼠标坐标方法全面讲解:clientX/Y,pageX/Y,offsetX/Y,layerX/Y,screenX/Y 一.关于js鼠标事件综合各大浏览器能获取到坐标的属性总共以下五种:eve ...
- js巧用apply方法实现数组最值以及合并
尽管js的apply方法在平常的使用中并不多见,但是在某些地方使用的还是很有帮助性的,这里就和大家说两个比较实用的例子:1.数组最大最小值 求数组中的最大最小值,js有相应的方法:Math.min() ...
- <js>实现回车键登陆方法,并处理谷歌与火狐不兼容的问题
1.在body中添加onkeydown事件 <body onkeydown="keyLogin(event);">2.使用js相应登陆添加方法//添加回车登陆事件 fu ...
- js中的tostring()方法
http://blog.sina.com.cn/s/blog_85c1dc100101bxgg.html js中的tostring()方法 (2013-11-12 11:07:43) 转载▼ 标签: ...
- js跳转页面方法大全
js跳转页面方法大全<span id="tiao">3</span><a href="javascript:countDown"& ...
- 常见JS(JavaScript)冲突解决方法
1.一般JS冲突解决办法 a.最容易出现的就是js的命名冲突 ①.变量名冲突 变量有全局变量和局部变量当全局变量变量和局部变量名称一致时,就会js冲突,由于变量传递数值或地址不同就会产生JavaScr ...
随机推荐
- spring配置文件头部配置解析(applicationContext.xml)
分享一个好的学习网站:http://how2j.cn?p=4509 相信大家对spring的配置文件应该都看的很多了,那么大家对配置文件头部的那一坨坨的东西到底是什么了解吗?下面我就把自己的一些见解和 ...
- bzoj 1925 dp
思路:dp[ i ][ 0 ]表示第一个是山谷的方案,dp[ i ][ 1 ]表示第一个是山峰的方案, 我们算dp[ x ][ state ]的时候枚举 x 的位置 x 肯定是山峰, 然后就用组合数算 ...
- ubuntu 安装 eslint
1. 安装 npm install -g eslint 安装结束后记住 /usr/local/bin/eslint -> /usr/local/lib/node_modules/eslint/b ...
- 美团 R 语言数据运营实战
一.引言 近年来,随着分布式数据处理技术的不断革新,Hive.Spark.Kylin.Impala.Presto 等工具不断推陈出新,对大数据集合的计算和存储成为现实,数据仓库/商业分析部门日益成为各 ...
- CentOS重装grub修复损坏的系统
grub损坏一般有两种情况:第一.安装双系统时,后安装的系统把先安装的系统的MBR删除了.第二.误操作将grub文件删除了. 不管怎样都需要进入到救援模式,详细请看CentOS通过光盘启动救援数据 ( ...
- Django一些开发经验
总结一些 Django 开发的小经验.先说一些最最基础的吧. 使用 virtualenv 隔离开发环境 使用 pip 管理项目依赖,主要就是一个小技巧,使用 pip freeze > requi ...
- 【HackerRank Week of Code 31】Colliding Circles
https://www.hackerrank.com/contests/w31/challenges/colliding-circles/problem 设E(n)为序列长度为n时的期望值. \[ \ ...
- gzez某蒟蒻lyy的博客
在gz,想去sn幻想乡也行,现在高一并且是已经高二但仍然是机房最弱,没救了 愿诸位身体健康 水平不行,写出来的东西很sb,但还是会偶尔记录一下... 数学公式测试:$\binom n{n_1\cdot ...
- Vue的过渡或动画
一.过渡的类名 在进入/离开的过渡中,共有6种class进行切换,分别是v-enter,v-enter-active,v-enter-to,v-leave,v-leave-active,v-leave ...
- Shell 学习笔记之条件语句
条件语句 if # if if condition then command fi # if else if condition then command else command fi # if e ...