cocos2d-html5 简易 下拉表单 控件
刚才在CH5的群里问了问 有没有大侠写过 下拉表单控件啊! 没人鸟窝 ,DZ老师表示非常伤心啊 ,于是乎 自己写一个把 共享给大家。
效果图上一个 仅仅实现了一个最最主要的控件 非常easy 别吐槽啊,以后有空我会完好一下的,假设有朋友自愿帮忙完好一下就更好了。
有不论什么问题请加DZ老师的QQ 460418221
引擎版本号 : 2.2.2
原理:有空再写吧
源代码:
/**
* Created with JetBrains WebStorm.
* User: Dz_Yang
* Date: 14-4-29
* Time: 上午13:19
* To change this template use File | Settings | File Templates.
*/ var Pull_down_menu = cc.Layer.extend({
WIDTH:0,
HEIGHT:0,
COLOR:null,
STR_ARRAY:null, SElECTS:null,
SELECTING_ID:null, STATE:0, init:function(){
this._super();
var winsize = cc.Director.getInstance().getWinSize();
this.SElECTS = new Array(); for(var i=0;i<this.STR_ARRAY.length;i++){
this.SElECTS[i] = cc.LayerColor.create(this.COLOR, this.WIDTH, this.HEIGHT);
var txt = cc.LabelTTF.create(this.STR_ARRAY[i],"Arial",this.HEIGHT * 2/3);
txt.setPosition(cc.p(this.WIDTH/2,this.HEIGHT/2));
this.SElECTS[i].addChild(txt);
this.SElECTS[i].setAnchorPoint(cc.p(0,1));
this.SElECTS[i].setPosition(cc.p(0,0-(i+1)*this.HEIGHT));
this.addChild(this.SElECTS[i]);
} this.choose(0); this.setTouchEnabled(true);
return true;
}, onTouchesBegan:function (touches, event){
if(touches.length == 1){
var click_id = null; for(var i=0;i<this.SElECTS.length;i++){
if(cc.rectContainsPoint(this.SElECTS[i].getBoundingBox(),cc.p( touches[0].getLocation().x -this.getPositionX() , touches[0].getLocation().y -this.getPositionY()) )){
click_id = i; break;
} else{ }
} if(click_id != null){
if(this.STATE == 0){
if(click_id == this.SELECTING_ID){
this.open();
}
}else if(this.STATE == 1){
this.choose(click_id);
}
} }
},
onTouchesMoved:function (touches, event){},
onTouchesEnded:function (touches, event){}, draw:function(){
cc.drawingUtil.setDrawColor4B(255, 255, 255, 255);
cc.drawingUtil.setLineWidth(3);
cc.drawingUtil.drawLine(cc.p(0,0),cc.p(this.WIDTH,0));
cc.drawingUtil.drawLine(cc.p(0,0),cc.p(0,this.HEIGHT));
cc.drawingUtil.drawLine(cc.p(0,this.HEIGHT),cc.p(this.WIDTH,this.HEIGHT));
cc.drawingUtil.drawLine(cc.p(this.WIDTH,this.HEIGHT),cc.p(this.WIDTH,0)); }, open:function(){ this.STATE =1;
for(var i=0;i<this.SElECTS.length;i++){
this.SElECTS[i].setPosition(cc.p(0,0-(i+1)*this.HEIGHT));
this.SElECTS[i].setVisible(true);
}
},
close:function(){
this.STATE =0;
for(var i=0;i<this.SElECTS.length;i++){
this.SElECTS[i].setVisible(false);
}
}, choose:function(id){
this.SELECTING_ID = id;
this.close();
this.SElECTS[id].setVisible(true);
this.SElECTS[id].setPosition(cc.p(0,0));
}, getSelectedID:function(){
return this.SELECTING_ID;
} }); Pull_down_menu.create = function(color, width, height, str_array){
var re = new Pull_down_menu();
re.WIDTH = width;
re.HEIGHT = height;
re.COLOR = color;
re.STR_ARRAY = str_array;
re.init();
return re; };
用法:
var pdm = Pull_down_menu.create(cc.c4(100,100,100,255),70,20,["丁丁","拉拉","迪西","小波"]);//第一个选项是底色,第二个是宽 第三个高 最后是一个字符串数组
pdm.setPosition(cc.p(170,winsize.height-150));
this.addChild(pdm);//是用pdm.getSelectedID() 能够获取选择的选项卡的下标
欢迎转载,请标明原帖地址:http://blog.csdn.net/ycd_harry/article/details/24709603
cocos2d-html5 简易 下拉表单 控件的更多相关文章
- 从零开始学习前端开发 — 10、HTML5新标签及表单控件属性和属性值
一.html5新增标签 1.结构性标签 header 定义网页的头部 nav 定义网页的导航 footer 定义网页的底部 section 定义网页的某个区域 article 定义网页中的一篇文章 a ...
- 415 DOM 查找列表框、下拉菜单控件、对表格元素/表单控件进行增删改操作、创建元素并且复制节点与删除、 对表格操作、通用性和标准的事件监听方法(点击后弹窗效果以及去掉效果)
DOM访问列表框.下拉菜单的常用属性: form.length.options.selectedindex.type 使用options[index]返回具体选项所对应的常用属性:defa ...
- Bootstrap 表单控件一(单行输入框input,下拉选择框select ,文本域textarea)
单行输入框,常见的文本输入框,也就是input的type属性值为text.在Bootstrap中使用input时也必须添加type类型,如果没有指定type类型,将无法得到正确的样式,因为Bootst ...
- 第九课 表单及表单控件 html5学习4
表单有由表单域.提示文本.表单3部分构成 一.表单控件 input 控件 1.<input />单标签2.input属性: 可以通过type属性变换形状 value默认值 name名称 c ...
- [Django]下拉表单与模型查询
前言:本文主要针对自定义下拉表单制作,下拉表单的内容是取至于数据库,即动态实现下拉表单 正文: 动态实现下拉表单有两种方法: 一.自己手动写 html 模板中的 <form ...> &l ...
- HTML5(常用的表单控件)
常用的HTML5的表单控件: Input 类型: color color 类型用在input字段主要用于选取颜色,如下所示: 从拾色器中选择一个颜色: 选择你喜欢的颜色: <input type ...
- css解决select下拉表单option高度的办法
css在给select下拉表单设置样式如边框时可以轻松搞定,而我们在不喜欢其默认的下拉箭头的样式时试图通过background:url(图片路径)来修改之,则往往会出现浏览器的兼容性问题,在网上查了好 ...
- HTML5 FormData 模拟表单控件 支持异步上传二进制文件 移动端
FormData是XMLHttpRequest Level 2添加的一个新的接口,利用FormData对象,我们可以通过JavaScript用一些键值对来模拟一系列表单控件,还可以使用XMLHttpR ...
- AnjularJS系列2 —— 表单控件功能相关指令
第二篇,表单控件功能相关指令. ng-checked控制radio和checkbox的选中状态 ng-selected控制下拉框的选中状态 ng-disabled控制失效状态 ng-multiple控 ...
随机推荐
- HtmlAgilityPack --解析Html源码
最近项目需要从网络上抓取一下数据解析Html源码,奈何正则表达式难写,于是网上搜索找到了“ HtmlAgilityPack”类库,敏捷开发,果然效率非同寻常. 在此做笔记,写下心得,顺便给自己总结一下 ...
- Mysql数据库中 ,涉及事物,循环添加数据
),), ) BEGIN declare cnt ; declare i ; declare growthid ; DECLARE t_error INTEGER DEFAULT ; DECLA ...
- Maven POM配置释疑
1. 对于有父子关系的Project, 父POM中依赖使用dependencies 和 dependencyManagement 的区别: dependencies: 即使子项目中不写该依赖项,仍然 ...
- dedecms(织梦)自定义表单后台显示不全 自定义模型当中添加自定义字段后在后台添加内容后不显示解决方案
我们常用dedecms 自定义表单做留言功能.但是偶尔会遇到这样一个问题,就是 在前台提交表单后..后天显示不全.特别是中文字符 都不会显示, 比如下图: 这是因为 如果你织梦是gbk的话那就对了 ...
- 手动修改VisualStudio IISExpress的配置
<VisualStudio> <FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}"> ...
- Spring Boot简介
Spring Boot简介 Spring Boot是为了简化Spring开发而生,从Spring 3.x开始,Spring社区的发展方向就是弱化xml配置文件而加大注解的戏份.最近召开的SpringO ...
- C++模板:二分查找
bool find(int x,int l,int r){ if(l>r)return false; int mid=(l+r)/2; if(s[mid]==x) return true; el ...
- C++模板:qsort
void qsort(int l,int r){ int i,j,t,mid; mid=b[(l+r)>>1]; i=l; j=r; do{ while (b[i]<mid) i++ ...
- HDU 1090 A+B for Input-Output Practice (II)
#include <cstdio> int main() { int n,a,b; scanf("%d",&n); ; i<=n; i++) { scan ...
- POJ1062 昂贵的聘礼 【DFS】
昂贵的聘礼 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 37475 Accepted: 10816 Descripti ...