cocosCreator实现一个验证码弹窗验证功能

公开文章地址
在 Cocos Creator 中实现一个6位数的验证码输入弹窗功能。主要包含以下三点
1、 可以连续输入验证码
2、 可以粘贴验证码
3、 可以连续删除验证码

前言

引擎版本: Cocos Creator 2.7.2
开发语言: ts

效果图

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

实现思路

1、 在弹窗界面放置6个输入框的精灵,每个精灵添加一个Label的子节点,放置一个EditBox。
2、 给6个输入框添加点击事件,不管点击哪个框,都聚焦到EditBox,触发EditBox的输入。
3、 监听EditBox的内容变更,将更新后的文本绘制到对应的输入框的Label上

缺点

1、 无法单独修改某一个输入框中的文本

示例代码

监听代码

     this._view._EditBoxC_input.node.on('text-changed', this.input, this);  // 监听EditBox内容变更
     this._view._LayC_input.node.children.map((v, i) => {
         v.on(Node.EventType.TOUCH_END, this.inputImg.bind(this, i), this);   // 6个输入框的点击事件
     })

EditBox监听

     private input(event) {
          let inputText = event.string;
          this._view._LayC_input.node.children.map((v, i) => {
               v.getChildByName("Label").active = true;
               if (inputText[i]) {
                    v.getChildByName("Label").getComponent(Label).string = inputText[i];
               } else {
                    v.getChildByName("Label").getComponent(Label).string = "";
            }
          })
     }

输入框点击

     private inputImg(index, event) {
          this._view._EditBoxC_input.focus();   // 聚焦到EditBox
     }

上面基本能够实现我想要的效果,如果你有更好的方法,欢迎交流。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南锋1

您的打赏是我继续创作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值