【cocos creator】输入框滑动条联动小组建

在这里插入图片描述
滑动条滑动输入框内容会改变
输入框输入,滑动条位置改变
在这里插入图片描述


const { ccclass, property } = cc._decorator;@ccclass()
export default class SliderEnter extends cc.Component {@property({ type: cc.Float, displayName: "最大值", tooltip: "" })public maxNum: number = 100;@property({ type: cc.Float, displayName: "最小值", tooltip: "" })public minNum: number = 0;@property({ type: cc.Float, displayName: "输入框初始值", tooltip: "" })public editBoxStart: number = 0;@property({ type: cc.Float, displayName: "滑动条初始位置", min: 0, max: 1, tooltip: "0~1,支持小数,对应输入框初始值" })sliderStart = 0;@property({ type: cc.Integer, displayName: "保留小数位数", tooltip: "" })public fixTo: number = 0;@property({ type: cc.EditBox, displayName: "输入框", tooltip: "" })public editBox: cc.EditBox = null;@property({ type: cc.Slider, displayName: "滑动条", tooltip: "" })public slider: cc.Slider = null;_sliderStart = 0;_editBoxStart = 0;protected onLoad(): void {this.onResetBtn()// this._sliderStart = this.slider.progress;// this._editBoxStart = this.checkEditBox()this.addHandler(this.slider.slideEvents, this.onSlide, "onSlide", this)this.addHandler(this.editBox.editingDidEnded, this.onSlide, "onEnter", this)}getData() {let num = this.checkEditBox()return num}onResetBtn() {this._sliderStart = this.sliderStart;this._editBoxStart = this.editBoxStartthis.slider.progress = this._sliderStartthis.editBox.string = this.fixForceStr(this._editBoxStart, this.fixTo)}checkEditBox() {let num = this.getInt(this.editBox.string, 0)if (num > this.maxNum) num = this.maxNum;if (num < this.minNum) num = this.minNum;this.editBox.string = num + ""return num;}onEnter() {let num = this.checkEditBox()if (num == this._editBoxStart) {num = this._sliderStart}else if (num <= this._editBoxStart) {this.slider.progress = (num - this.minNum) / (this._editBoxStart - this.minNum) * this._sliderStart}else {this.slider.progress = this._sliderStart + (num - this._editBoxStart) / (this.maxNum - this._editBoxStart) * (1 - this._sliderStart)}}onSlide() {let progress = this.slider.progresslet num = 0if (progress < 0) progress = 0if (progress > 1) progress = 1this.slider.progress = progressif (progress == this._sliderStart) {num = this._editBoxStart}else if (progress <= this._sliderStart) {num = this.minNum + (this._editBoxStart - this.minNum) * progress / this._sliderStart}else {num = this._editBoxStart + (progress - this._sliderStart) * (this.maxNum - this._editBoxStart) / (1 - this._sliderStart)}this.editBox.string = this.fixForceStr(num, this.fixTo)}addHandler(fun: any, handler, fnName = "", scope, eventData = "") {if (!fnName || !scope[fnName]) {fnName = "__BtnClick__" + (Math.random() + "").slice(2, 15);scope[fnName] = handler;}let eventHandler = new cc.Component.EventHandler();eventHandler.target = scope.node;eventHandler.component = cc.js.getClassName(this);eventHandler.handler = fnName;eventHandler.customEventData = eventData;if (typeof (fun) == "object" && cc.isValid(fun.length)) fun.push(eventHandler);return eventHandler}fixForceStr(count, fixTo): string {let a = (count + "").split(".");if (fixTo == 0) return a[0]let b = a[0];if (a.length > 1) b = a[0] + "." + a[1].slice(0, fixTo);if (b == "0.00" || b == "0.0") {return a[0]}return b;}getInt(data, defaultNum) {let num = Number(data)return isNaN(num) ? defaultNum : num;}
}

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

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

相关文章

linux设备驱动介绍

目录 一.裸机设备驱动 vs linux设备驱动 1.什么是驱动程序 2.裸机驱动和操作系统驱动有什么区别 3.linux驱动的本质是什么 二.linux设备分类 一.裸机设备驱动 vs linux设备驱动 1.什么是驱动程序 一般来说能让硬件工作起来的程序就是驱动程序,驱动程序提供的是硬件设备操作的…

随机掉落的项目足迹:修改组件库默认样式

需求引入 为了便于讲解&#xff0c;我直接引入案例 在使用element ui的表单组件时&#xff0c;我觉得输入框前面的“文章标题”几个字太小了&#xff0c;想改大一点 解决方法 F12 审查元素&#xff0c;找到“文章标题”对应的代码&#xff0c;发现这个标签对应的类名class&q…

学以致用 SAP HCM 顾问excel函数实战系列

EXCEL函数&#xff1a;在上学的时候&#xff0c;对word、excel、PPT感觉都很简单&#xff0c;稀里糊涂的学&#xff0c;稀里糊涂的忘&#xff0c;然后走向工作岗位的时候&#xff0c;突然发现这三大宝剑无比锋利&#xff0c;可惜自己太菜&#xff0c;曾经努力学习&#xff0c;但…

如何设置 GitLab 密码长度?

GitLab 是一个全球知名的一体化 DevOps 平台&#xff0c;很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版&#xff0c;专门为中国程序员服务。可以一键式部署极狐GitLab。 学习极狐GitLab 的相关资料&#xff1a; 极狐GitLab 60天专业…

【CSS in Depth 2 精译_047】7.2 CSS 响应式设计中的媒体查询原则(上):深入理解媒体查询的类型

当前内容所在位置&#xff08;可进入专栏查看其他译好的章节内容&#xff09; 【第七章 响应式设计】&#xff08;概述&#xff09; 7.1 移动端优先设计原则&#xff08;上篇&#xff09; 7.1.1 创建移动端菜单&#xff08;下篇&#xff09;7.1.2 给视口添加 meta 标签&#xf…

算法笔记day03

目录 1. 大数加法 2.链表相加(二) 3.大数乘法 1. 大数加法 大数加法_牛客题霸_牛客网 算法思路&#xff1a; 这就是一道模拟题&#xff0c;模拟加法列竖式运算的过程。 class Solution { public:/*** 代码中的类名、方法名、参数名已经指定&#xff0c;请勿修改&#xff0…

用最短长度的绳子把整个花园围起来

给定一个数组 trees&#xff0c;其中 trees[i] [xi, yi] 表示树在花园中的位置。 你被要求用最短长度的绳子把整个花园围起来&#xff0c;因为绳子很贵。只有把 所有的树都围起来&#xff0c;花园才围得很好。 返回恰好位于围栏周边的树木的坐标。 示例 1: 输入: points […

【24最新亲试】ubuntu下载go最新版本

系列综述&#xff1a; &#x1f49e;目的&#xff1a;本系列是个人整理为了工具配置的&#xff0c;整理期间苛求每个知识点&#xff0c;平衡理解简易度与深入程度。 &#x1f970;来源&#xff1a;材料主要源于Ubuntu 升级 golang 版本完美步骤进行的&#xff0c;每个知识点的修…

C语言-了解程序环境和预处理看这一篇(超详解)

1.程序环境 在ANSIC的任何一种实现中&#xff0c;都会存在两个不同的环境。第1种是翻译环境&#xff0c;在这个环境中源代码被转换为可执行的机器指令&#xff0c;第2种是执行环境&#xff0c;它用于实际执行代码。如下图所示&#xff1a; 1.1 翻译环境 翻译环境会分几个步骤…

大数据处理从零开始————9.MapReduce编程实践之信息过滤之学生成绩统计demo

1.项目目标 1.1 需求概述 现在我们要统计某学校学生的成绩信息&#xff0c;筛选出成绩在60分及以上的学生。 1.2 业务分析 如果我们想实现该需求&#xff0c;可以通过编写一个MapReduce程序&#xff0c;来处理包含学生信息的文本文件&#xff0c;每行包含【学生的姓名&#x…

HCIP--以太网交换安全(二)端口安全

端口安全 一、端口安全概述 1.1、端口安全概述&#xff1a;端口安全是一种网络设备防护措施&#xff0c;通过将接口学习的MAC地址设为安全地址防止非法用户通信。 1.2、端口安全原理&#xff1a; 类型 定义 特点 安全动态MAC地址 使能端口而未是能Stichy MAC功能是转换的…

使用 Vertex AI Gemini 模型和 Elasticsearch Playground 快速创建 RAG 应用程序

作者&#xff1a;来自 Elastic Jeff Vestal 在这篇博客中&#xff0c;我们将使用 Elastic 的 Playground 和 Vertex AI API 将 Elasticsearch 连接到 Google 的 Gemini 1.5 聊天模型。将 Gemini 模型添加到 Playground 使 Google Cloud 开发人员能够快速建立 LLM、测试检索、调…

算法闭关修炼百题计划(四)

仅供个人复习 1.两数相加2.寻找峰值6.岛屿的最大面积3.最大数4.会议室5.最长连续序列6.寻找两个正序数组的中位数 1.两数相加 给你两个 非空 的链表&#xff0c;表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的&#xff0c;并且每个节点只能存储 一位 数字。 请…

滑动窗口_⽔果成篮找到字符串中所有字⺟异位词

⽔果成篮 904. 水果成篮 - 力扣&#xff08;LeetCode&#xff09; 相当于求数字种类不超过2的最长字字符串 我们先看一看例4.从第一个元素开始最长字符串3331&#xff0c;下一次从第二个位置数吗&#xff1f;没必要&#xff0c;因为只有当字符串中数字种类变为1时&#xff0c;…

pycharm里debug时如何看到数据的维度

使用表达式计算&#xff08;Evaluate Expression&#xff09; 调试时&#xff0c;使用 PyCharm 的 “Evaluate Expression” 功能可以动态查看或修改数据。具体步骤如下&#xff1a; 在调试模式中按 Alt F8&#xff08;Windows&#xff09;或 Option F8&#xff08;Mac&…

机器学习 | 特征选择如何减少过拟合?

在快速发展的机器学习领域&#xff0c;精确模型的开发对于预测性能至关重要。过度拟合的可能性&#xff0c;即模型除了数据中的潜在模式外&#xff0c;还拾取训练集特有的噪声和振荡&#xff0c;这是一个固有的问题。特征选择作为一种有效的抗过拟合武器&#xff0c;为提高模型…

JAVA科技赋能共享台球室无人系统小程序源码

科技赋能共享台球室无人系统 —— 智慧台球新体验 &#x1f3b1; 科技引领&#xff0c;台球室迎来无人新纪元 在这个日新月异的科技时代&#xff0c;共享经济的浪潮席卷而来&#xff0c;为我们的生活带来了诸多便利。而今天&#xff0c;我要为大家介绍的&#xff0c;正是科技…

【高等代数笔记】线性空间(十九-二十四上半部分)

课程视频剪辑得太抽象了&#xff0c;一节课不能完整学完&#xff0c;拆的零零散散得。 3. 线性空间 3.19 满秩矩阵 【推论4】设 rank ( A ) r \text{rank}(\boldsymbol{A})r rank(A)r&#xff0c;则 A \boldsymbol{A} A的不为0的 r r r阶子式所在的列&#xff08;行&#x…

2.3MyBatis——插件机制

2.3MyBatis——插件机制 1.基本用法2.原理探究2.1加载过程2.2执行过程2.2.1 插件的执行点2.2.2 SQL执行的几个阶段2.2.3 如何梳理出执行流程 合集总览&#xff1a;Mybatis框架梳理 插件机制是一款优秀框架不可或缺的组成部分&#xff0c;比如spring、dubbo&#xff0c;还有…

链表(2)_两两交换链表中的节点_面试题

个人主页&#xff1a;C忠实粉丝 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 C忠实粉丝 原创 链表(2)_两两交换链表中的节点_面试题 收录于专栏【经典算法练习】 本专栏旨在分享学习算法的一点学习笔记&#xff0c;欢迎大家在评论区交流讨论&#x1f48c;…