CocosCreator3.8研究笔记(十九)CocosCreator UI组件(三)(2)

简介: CocosCreator3.8研究笔记(十九)CocosCreator UI组件(三)

三、ProgressBar 组件


ProgressBar(进度条)经常被用于在游戏中显示某个操作的进度,比如:游戏更新下载进度。


ProgressBar 属性

属性 功能说明
Bar Sprite 进度条渲染所需要的 Sprite 组件,可以通过拖拽一个带有 Sprite 组件的节点到该属性上来建立关联。
Mode 支持 HORIZONTAL(水平)、VERTICAL(垂直)和 FILLED(填充)三种模式,可以通过配合 reverse 属性来改变起始方向。
Total Length 当进度条为 100% 时 Bar Sprite 的总长度/总宽度。在 FILLED 模式下 Total Length 表示取 Bar Sprite 总显示范围的百分比,取值范围从 0 ~ 1。
Progress 浮点,取值范围是 0~1,不允许输入之外的数值。
Reverse 布尔值,默认的填充方向是从左至右/从下到上,开启后变成从右到左/从上到下。


在节点上添加 ProgressBar 组件,然后给该组件关联一个 Bar Sprite 就可以在场景中控制 Bar Sprite 来显示进度了。


Bar Sprite 可以是自身节点,子节点,或者任何一个带有 Sprite 组件的节点。


Bar Sprite 可以自由选择 Simple、Sliced 和 Filled 渲染模式。

进度条的模式选择 FILLED 的情况下,Bar Sprite 的 Type 也需要设置为 FILLED,否则会报警告。


四、Toggle 组件


Toggle 是一个 CheckBox, Toggle 继承自 Button,当它和 ToggleContainer 一起使用的时候,可以变成 RadioButton。



Toggle 属性

属性 功能说明
isChecked 布尔类型,如果这个设置为 true,则 check mark 组件会处于 enabled 状态,否则处于 disabled 状态。
checkMark Sprite 类型,Toggle 处于选中状态时显示的图片
Check Events 列表类型,默认为空,用户添加的每一个事件由节点引用,组件名称和一个响应函数组成。详情见下方的 Toggle 事件 部分

Toggle 的事件回调有二个参数,第一个参数是 Toggle 本身,第二个参数是 customEventData。


添加事件回调的方法(一):

import { _decorator, Component, Event, Node, ToggleComponent, EventHandler } from 'cc';
const { ccclass, property } = _decorator;
@ccclass("test")
export class example extends Component {
    onLoad(){
        const checkEventHandler = new EventHandler();
        checkEventHandler.target = this.node;  //这个 node 节点是你的事件处理代码组件所属的节点
        checkEventHandler.component = 'test';  //这个是脚本类名
        checkEventHandler.handler = 'callback';
        checkEventHandler.customEventData = 'data';
        const toggle = this.node.getComponent(ToggleComponent);
        toggle.checkEvents.push(checkEventHandler);
    }
    callback(event: Event, customEventData: string){
        //这里 event 是一个 Touch Event 对象,你可以通过 event.target 取到事件的发送节点
        // 这里的 customEventData 参数就等于之前设置的 'data'
    }
}


方法(二): 通过 toggle.node.on('toggle', ...) 的方式来添加。

注意这种方式注册的事件,无法传递 customEventData


import { _decorator, Component, ToggleComponent } from 'cc';
const { ccclass, property } = _decorator;
@ccclass("test")
export class test extends Component {
    @property(ToggleComponent)
    toggle: ToggleComponent | null = null;
    onLoad(){
       this.toggle.node.on('toggle', this.callback, this);
    }
    callback(toggle: ToggleComponent){
        // 回调的参数是 toggle 组件,
    }
}


五、ToggleContainer 组件


ToggleContainer 不是一个可见的 UI 组件,它可以用来修改一组 Toggle 组件的行为。

当一组 Toggle 属于同一个 ToggleContainer 的时候,任何时候只能有一个 Toggle 处于选中状态。


1、ToggleContainer 属性

属性 功能说明
AllowSwitchOff 如果这个设置为 true,那么 toggle 按钮在被点击的时候可以反复地被选中和未选中。
CheckEvents 选中事件。列表类型,默认为空,用户添加的每一个事件由节点引用,组件名称和一个响应函数组成。


2、ToggleContainer 事件回调

import { _decorator, Component, Event, Node, ToggleContainer, EventHandler } from 'cc';
const { ccclass, property } = _decorator;
@ccclass("test")
export class test extends Component {
    onLoad(){
        const containerEventHandler = new EventHandler();
        containerEventHandler.target = this.node; // 这个 node 节点是你的事件处理代码组件所属的节点
        containerEventHandler.component = 'test';// 这个是脚本类名
        containerEventHandler.handler = 'callback';
        containerEventHandler.customEventData = 'data';
        const container = this.node.getComponent(ToggleContainer);
        container.checkEvents.push(containerEventHandler);
    }
    callback(event: Event, customEventData: string) {
        // 这里 event 是一个 Touch Event 对象,你可以通过 event.target 取到事件的发送节点
        // 这里的 customEventData 参数就等于之前设置的 'data'
    }
}


3、ToggleContainer的使用案例:

(1)、在属性检查器中,为Toggle 的父节点添加 ToggleContainer 组件

(2)、在层级管理器中添加多个同级的Toggle 组件

=


此时,所有包含 Toggle 组件的节点都会自动被添加到ToggleContainer 容器中。


(3)、运行效果


六、Slider 组件


Slider 是一个滑动器组件,通常用于调节 UI 的数值(例如音量调节),它主要的部件是一个滑块按钮,该部件用于用户交互,通过该部件可进行调节 Slider 的数值大小。


Slider 属性

属性 功能说明
handle 滑块按钮部件,可以通过该按钮进行滑动调节 Slider 数值大小
direction 滑动器的方向,分为横向和竖向
progress 当前进度值,该数值的区间是 0-1 之间
slideEvents 滑动器组件事件回调函数


代码添加回调方法一:

构造一个EventHandler 对象,然后设置对应的 targetcomponenthandlercustomEventData 参数。


mport { _decorator, Component, Event, Node, Slider, EventHandler } from 'cc';
const { ccclass, property } = _decorator;
@ccclass("SliderCtrl")
export class SliderCtrl extends Component {
    onLoad () {
        const sliderEventHandler = new EventHandler();
        // 这个 node 节点是事件处理脚本组件所属的节点
        sliderEventHandler.target = this.node; 
        // 这个是脚本类名
        sliderEventHandler.component = 'SliderCtrl';
        sliderEventHandler.handler = 'callback';
        sliderEventHandler.customEventData = 'data';
        const slider = this.node.getComponent(Slider);
        slider!.slideEvents.push(sliderEventHandler);
    }
    callback(slider: Slider, customEventData: string) {
        //这里 event 是一个 Touch Event 对象,你可以通过 event.target 取到事件的发送节点
        // 这里的 customEventData 参数就等于之前设置的 'data'
    }
}


代码添加回调方法二:

通过 slider.node.on('slide', ...) 的方式来添加,这种方式注册的事件,无法传递 customEventData。


import { _decorator, Component, Slider } from 'cc';
const { ccclass, property } = _decorator;
@ccclass("SliderCtrl")
export class SliderCtrl extends Component {
    @property(Slider)
    slider: Slider | null = null;
    onLoad () {
       this.slider!.node.on('slide', this.callback, this);
    }
    callback(slider: Slider) {
    }
}


七、WebView 组件

WebView 是一种显示网页的组件,该组件让你可以在游戏里面集成一个小的浏览器,目前只支持 Web、iOS 和 Android 平台。


WebView 属性

属性 功能说明
Url 指定一个 URL 地址,这个地址以 http 或者 https 开头,请填写一个有效的 URL 地址。
WebView Events WebView 的回调事件,当 webview 在加载网页过程中,加载网页结束后或者加载网页出错时会调用此函数。


WebViewEvents 事件

属性 功能说明
Target 带有脚本组件的节点。
Component 脚本组件名称。
Handler 指定一个回调函数,当网页加载过程中、加载完成后或者加载出错时会被调用,该函数会传一个事件类型参数进来。
CustomEventData 用户指定任意的字符串作为事件回调的最后一个参数传入。


相关文章
|
15天前
|
JavaScript
从零开始写一套广告组件【一】搭建基础框架并配置UI组件库
其实这个从零有点歧义,因为本质上是要基于`tdesign-vue-next`来进行二次封装为一套广告UI组件库,现在让我们在一起快乐的搭建自己的广告UI库之前,先对以下内容做出共识:
28 0
从零开始写一套广告组件【一】搭建基础框架并配置UI组件库
|
2月前
|
存储 搜索推荐 Java
探索安卓开发中的自定义视图:打造个性化UI组件Java中的异常处理:从基础到高级
【8月更文挑战第29天】在安卓应用的海洋中,一个独特的用户界面(UI)能让应用脱颖而出。自定义视图是实现这一目标的强大工具。本文将通过一个简单的自定义计数器视图示例,展示如何从零开始创建一个具有独特风格和功能的安卓UI组件,并讨论在此过程中涉及的设计原则、性能优化和兼容性问题。准备好让你的应用与众不同了吗?让我们开始吧!
|
2月前
|
JavaScript 前端开发 安全
[译] 在 Vue 组件中分离 UI 和业务逻辑。
[译] 在 Vue 组件中分离 UI 和业务逻辑。
|
2月前
|
JavaScript UED
基于Vue2.0仿Element UI的el-tooltip实现一个气泡框组件,支持多数据类型的显示和内容为空时不显示气泡框
该文章介绍了如何基于Vue2.0仿照Element UI的el-tooltip组件实现一个自定义的气泡框组件,该组件能够根据内容是否为空智能显示或隐藏,支持多种数据类型的显示。
74 0
基于Vue2.0仿Element UI的el-tooltip实现一个气泡框组件,支持多数据类型的显示和内容为空时不显示气泡框
|
2月前
|
数据可视化 数据挖掘 持续交付
Axure Web端元件库:从Quick UI到500+组件的飞跃
在快速变化的数字世界中,产品设计不仅仅是功能的堆砌,更是用户体验的精心雕琢。原型设计作为产品开发过程中的关键环节,其重要性不言而喻。Axure,作为业界领先的原型设计工具,凭借其强大的交互设计和丰富的功能,赢得了全球设计师和开发者的信赖。而Axure Web端元件库,则是这一平台上的一颗璀璨明珠,它以超过500个精心设计的组件为基础,为设计师们打开了一扇通往高效、高质量原型设计的大门。
|
3月前
element UI 组件封装--搜索表单(含插槽和内嵌组件)
element UI 组件封装--搜索表单(含插槽和内嵌组件)
61 5
|
3月前
|
前端开发
ElementPlus卡片如何能够一行呈四,黑马UI前端布局视频资料,element样式具体的细节无法修改,F12找到那个位置,可能在其他组件写了错误,找到那个位置,围绕着位置解决问题最快了,卡片下边
ElementPlus卡片如何能够一行呈四,黑马UI前端布局视频资料,element样式具体的细节无法修改,F12找到那个位置,可能在其他组件写了错误,找到那个位置,围绕着位置解决问题最快了,卡片下边
|
5月前
|
前端开发 搜索推荐 开发者
SAP UI5 sap.m.Column 控件的 minScreenWidth 属性介绍
SAP UI5 sap.m.Column 控件的 minScreenWidth 属性介绍
|
5月前
|
JavaScript 前端开发 开发者
SAP UI5 控件 sap.m.ListBase 的 inset 属性的作用介绍
SAP UI5 控件 sap.m.ListBase 的 inset 属性的作用介绍
|
5月前
|
前端开发 JavaScript API
SAP UI5 sap.ui.require.toUrl 的作用介绍
SAP UI5 sap.ui.require.toUrl 的作用介绍
下一篇
无影云桌面