【CocosCreator】自定义Slider

目标:

        今天在开发过程中接到了一个新需求,是做一个用于调整音量的Slider,要求Slider的填充物;背景以及拖拽物都可以自定义修改。

        如图:

需要解决的问题:

        在系统提供的slider组件中,无法设置填充物,只能设置Handle(拖拽物)

方法:

        一开始想到的是比较硬性的方法:每次拖拽后,使用当前slider的数值,对填充物的图片进行横向的等比例缩放。后来发现了更简单的方法就是可以使用ProgressBar与Slider进行配合实现:

1. 在Slider的背景节点添加Slider与ProgressBar组件

        首先确认是背景节点:

        

        因为ProgressBar是一个可以修改填充物的组件,所以我们可以把UI显示与交互分成两个组件来实现,Slider用于接收用户手动拖拽的事件,Progress负责显示。

        

2. 分别设置填充物及拖拽物

        填充物→

        拖拽物→

3. 开启Slide Events 

        将Slide Events的数值改成1,并选中相关的节点与脚本。

4. 在脚本中编辑事件函数

        在每次Slider被拖拽时,把Slider的值赋值给进度条。

@ccclass('setting_view')
export class setting_view extends GameComponent {
    BGM_progressBar: Node = null;// 创建一个空节点用于找到ProgressBar
    start() {
       this.BGM_progressBar = this.node.getChildByName("BGM").getChildByName("BGM_slider").getChildByName("ProgressBar");
// 拿到ProgressBar
    }

    // 背景音乐滑动条发生改变时调用的函数
    // 在每次Slider发生改变时,拿到值,赋值给ProgressBar
    BGM_slider_handler(event: Slider) {
        // 这里加0.03是为了ui显示
        this.BGM_progressBar.getComponent(ProgressBar).progress = event.progress + 0.03;
    }
}

5. 在Slider的属性检查器中绑定事件函数

        点击设置即可

内容概要:本文档《opencv高频面试题.docx》涵盖了OpenCV的基础概念、图像处理操作、特征提取与匹配、目标检测与机器学习、实际编程题、性能优化以及进阶问题。首先介绍了OpenCV作为开源计算机视觉库,支持图像/视频处理、目标检测、机器学习等领域,应用于安防、自动驾驶、医学影像、AR/VR等方面。接着详细讲述了图像的存储格式(如Mat类)、通道的概念及其转换方法。在图像处理部分,讲解了图像灰度化、二值化、边缘检测等技术。特征提取方面,对比了Harris和Shi-Tomasi角点检测算法,以及SIFT、SURF、ORB的特征提取原理和优缺点。目标检测部分介绍了Haar级联检测原理,并阐述了如何调用深度学习模型进行目标检测。文档还提供了几个实际编程题示例,如读取并显示图像、图像旋转、绘制矩形框并保存等。最后,探讨了性能优化的方法,如使用cv2.UMat(GPU加速)、减少循环等,以及相机标定、光流等进阶问题。 适合人群:对计算机视觉有一定兴趣,具备一定编程基础的学习者或从业者。 使用场景及目标:①帮助学习者掌握OpenCV的基本概念和技术;②为面试准备提供参考;③为实际项目开发提供技术指导。 阅读建议:由于内容涵盖广泛,建议读者根据自身需求有选择地深入学习相关章节,并结合实际编程练习加深理解。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值