cocoscreator editbox 只允许数字_《Cocos Creator游戏实战》做一个数字调节框

3e07d50ba3430960a1810b8960b85e06.png

当玩家购买道具的时候,一个个买可能会比较麻烦,用数字调节框的话玩家一次性就可以买好几十个了(钱够的话)。

0ea081825c7bd808c621199474bc9f35.png

运行效果如下:

beecf5740535ab2e07f1dbfb69047317.gif

Cocos Creator版本:2.2.0

公号"All Codes"后台回复"数字调节框",获取该项目完整文件。

创建节点

以下是层级管理器截图:

3ebb77a8239612f0b8d3f3c0f97b41e4.png
  1. bg就是一个Sprite类型节点,作为屏幕背景,不用管。
  2. SpinBox是一个Layout类型节点,用来布局输入框和按钮,方向为水平,Resize Mode为CONTAINER。
  3. editbox节点就是编辑器自带的输入框(笔者将PLACEHOLDER_LABEL给删除了),这里给
  4. buttons也是一个Layout类型节点,用来布局up和down两个按钮,方向为垂直,Resize Mode为CONTAINER。
  5. up和down是两个按钮(Label节点已被删除),分别用来调高和调低数字。

给输入框和调高调低按钮加上背景图片后,场景编辑器显示如下:

c9523c9ba3bf345a0daacc1b2eb19c68.png

编写脚本

资源管理器中创建一个名为SpinBox.js的脚本文件,将其挂到SpinBox节点上。

在properties中添加如下属性:

// SpinBox.js

笔者的想法是开发者能够自己设置调节框所允许的最大最小值:

c7bc7b165e1c1c23815a9357ae955137.png

不过笔者这里将输入框最大允许输入的字符个数设为了2,也就是说最大值也就是99了。当然大家可以按照自身情况进行修改:

ab9b770121a5cb3a0ec8a8bda231dcc5.png

输入框一开始应该显示最小值:

// SpinBox.js

因为输入框下的TEXT_LABEL节点默认是不可见的,所以这里要对该节点先进行显示。

以下是调高和调低按钮的事件函数:

// SpinBox.js
  • 如果玩家按下调高按钮,那么首先判断该按钮是否超出最大值,是的话则无效,否则数字加1。
  • 如果玩家按下调低按钮,那么首先判断该按钮是否超出最小值,是的话则无效,否则数字减1。

最后是输入框的两个事件函数:

// SpinBox.js

输入框允许玩家输入任何文本,所以我们应该对文本进行过滤。

  • 当输入开始时(当玩家点击输入框),我们将当前输入框的文本保存在this.temp中。
  • 输入结束后(按下回车或者触摸屏幕其他地方),我们首先判断玩家输入的是不是数字。如果不是,则将文本还原为之前的样子;如果是数字,那么判断是否超出了最大值和最小值,超出的话就将文本直接设置为最大最小值。

记得在属性检查器中添加这两个函数:

f279ab228e8545ab8f44fd02a8d6af59.png

以上代码只是笔者对数字调节框功能的一种想法,大家当然可以自行修改,做出自己想要的功能。

今天教程就到这,希望大家有所收获~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/305058.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

为什么一流成功人士的闹钟都定在早晨5:57?

对很多人来说,早晨时分是一天中最匆忙的时段。近年来,我在研究人们如何利用时间的过程中发现,市场上铺天盖地的媒体教你如何利用早晨的时间。 美国国家睡眠基金会发布的一项睡眠调查结果显示,在工作日的早晨,30-50岁的…

命令行小技巧

我们平时使用Linux的时候经常遇到这样一个问题,举例有这样一种情况:执行命令 $ cp /etc/apt/sources.list /etc/apt/sources.list.bak 这里面有个问题,明明 /etc/apt/sources 这几个字都是一样的,为什么要打两遍?这样的…

统计学习导论_统计机器学习之扫盲导论篇

机器学习之扫盲导论篇来都来了,不关注一下吗??人工智能是当下最火的词,而机器学习就是它的灵魂。现在超级多搞金融的人已经用到很深的机器学习模型了,更别提互联网企业的大佬们了,比如:(这是一篇…

[Abp 源码分析]异常处理

点击上方蓝字关注我们Abp 框架本身针对内部抛出异常进行了统一拦截,并且针对不同的异常也会采取不同的处理策略。在 Abp 当中主要提供了以下几种异常类型:异常类型描述AbpExceptionAbp 框架定义的基本异常类型,Abp 所有内部定义的异常类型都继…

phpstorm设置 打开文件所在目录_PDF文件在线分享并设置打开次数

公司有一些重要的PDF文档,怎么才能防止外泄?如何加密PDF文件防止被人复制了?怎样让PDF不能被别人拷贝啊? 这些问题困扰了一部分想让别人看pdf内容又担心别人泄露的人。本文用maipdf网站的例子来进行设置。首先我们打开maipdf的网站…

荐号 | 11个人工智能与大数据相关的个人、企业优质号

AlphaGo Zero都会自学了,作为刚刚步入AI大门的我们,应该如何选择合适自己的知识平台呢?今天小编为你甄选了几个高质量的技术公众号。 这些号更多的不是讲授枯燥的理论,而是从行业资讯、一线技术、应用案例、职场发展等多个角度分享…

以表达式作为参数传入SQL的存储过程中去

在开发过程中,需要把一句Sql 的expression作为一个参数传入Procedure中去。 在asp.net中,一个Search的动作,把用户所操作的搜索条件写成了一句表达式,现只需要把这句表达式传入存储过程中去,与存储过程中的Sql的Select…

围棋中的数学原理

围棋一向被誉为是人类大脑智慧的专利,围棋的走法,几乎和宇宙中原子数量相同,甚至更多,每回合有250种可能,一盘棋可以长达150个回合,共有1后面再加360个0种下法,这样的计算量,对计算机…

spring boot 缓存_Spring Boot 集成 Redis 实现数据缓存

Spring Boot 集成 Redis 实现数据缓存,只要添加一些注解方法,就可以动态的去操作缓存了,减少代码的操作。在这个例子中我使用的是 Redis,其实缓存类型还有很多,例如 Ecache、Mamercache、Caffeine 等。Redis 简介Redi…

.md是什么文件_Element-UI源码阅读之md显示到页面

入口文件首先,看一个项目的入口,可以从package.json中去看它的运行命令 可以看到dev那行,执行了很多脚本: npm run bootstrap && npm run build:file && cross-env NODE_ENVdevelopment webpack-dev-server --con…

linux误删ssh不上,误删openssh-server删除,复原操作

在别的节点上寻找openssh的程序有哪些:而我的这个节点上只有一个openssh-clines,所以,就先利用了yum install openssh-server进行安装,但是这个安装的是最新的 openssh-server-5.3p1-122.el6.x86_64.rpm,担心集群节点之…

我用 MySQL 干掉了一摞简历

临近过年,疫情又趋于平稳,最近出来面试的人也多了起来,我们公司也在招人。我发现,不少候选人,对数据库的认知还处在比较基础的阶段,以为会写“增删改查”、做表关联就足够了,那些工作中经常出现…

为什么AI工程师成为当前薪资最高的技术岗位

今年无疑是“人工智能”话题火热指数最高的一年。从腾讯西雅图AI实验室,百度斥资超过200亿投入人工智能研发,再到最近 Google 打算在中国进行AI领域的市场扩张,其母公司 Alphabet 更是在7月便成立专注AI领域的风投机构...全球都在风生水起、将…

spring boot jar包_「Spring Boot 新特性」 jar 大小自动瘦身

自动分析瘦身Spring Boot 项目最终构建处理 JAR 包大小一直是个诟病,需要把所有依赖包内置最终输出可运行的 jar。当然可以使用其他的插件扩展 实现依赖 JAR 和 可运行 jar 分离可以参考 slot-maven-plugin[1], 但此种方法治标不治本并不能减少原有依赖的 JAR 的大小…

设计模式在项目中的应用案例_设计模式在项目中的应用(初学者版)

文章首发链接:设计模式在项目中的实际应用(应试版)​mp.weixin.qq.com本文适用于设计模式初学者。很多人学习了设计模式,但在项目开发中仍然不知道如何使用;很多小伙伴在课堂上跟着老师稀里糊涂的听了,懂了…

微创社001期:从0开始创作第一本技术书

互联网已经成为了人们生活中如饮水空气一般的基础设施,它不仅影响着当下我们的生活,也必将在更加普遍的领域影响着我们的未来。而在大浪潮中,坚守一个以自我为中心的知识体系,不仅有助于我们作为个体更好的从互联网汲取养分&#…

关于虚拟机下linux共享Windows文件的解决方案

先跟大家说一下在windows下装的vmware,就是又在vmware的系统里虚拟了一个Linux的系统的话,我们有些朋友就是想法把物理机的东西拷贝到Linux虚拟机里时很是伤神,当然windows就很简单了,直接拖进去(如果你安装了vmware t…

10分钟让你快速掌握Excel的16项重要技巧

大家在日常生活、工作使用Excel时,是不是总会遇到很多问题呢? 不小心将文件命名错了,要一个个改? 文件里只需要数据却不知道怎么提取? 工作汇报要做数据汇总、需要插入大量图片怎么办? 甚至在耗费相当多的时间与精力…

linux中wine yum安装,分享|在基于RedHat或Debian的系统上安装 Wine 1.7

Wine,Linux上最流行也是最有力的软件, 可以顺利地在Linux平台上运行Windows程序和游戏。这篇文章教你怎么在像CentOS, Fedora, Ubuntu, Linux Mint一样基于Red Hat和Debian的系统上安装最新的Wine 1.7。在Linux安装 Wine 1.7不幸的, 在基于Red Hat的系统上没有官方的 Wine 仓库…

还不知道这 11 个超酷的编程新工具你就 out 了!

工具对开发人员来说至关重要。工具可以让一个开发人员的日常工作更高效,并且只需要关注最重要的事情。对于开发人员来讲,寻找更好的替代工具往往比坚持使用熟悉过时的工具更困难。 在这篇文章中,我们将列出你在日常工作中能够使用的新的开发工…