【CocosCreator入门】CocosCreator组件 | PageView(页面视图)组件

news2025/1/13 7:30:03

       Cocos Creator 是一款流行的游戏开发引擎,具有丰富的组件和工具,其中的PageView组件是一种用于实现分页视图效果的重要组件。它可以让我们在游戏中实现各种分页视图效果,例如引导页、轮播图等。


目录

一、组件介绍

二、组件属性

三、组件使用 

四、脚本示例


一、组件介绍

       PageView组件是Cocos Creator提供的一种用于实现分页视图效果的组件。通过设置PageView组件的属性和事件,可以实现各种不同的分页视图效果,例如滑动方向、翻页效果、自动翻页等。

二、组件属性

属性功能说明
Content它是一个节点引用,用来创建 PageView 的可滚动内容
Size Mode页面视图中每个页面大小类型,目前有 Unified 和 Free 类型。
Direction页面视图滚动方向
Scroll Threshold滚动临界值,默认单位百分比,当拖拽超出该数值时,松开会自动滚动下一页,小于时则还原
Auto Page Turning Threshold快速滑动翻页临界值,当用户快速滑动时,会根据滑动开始和结束的距离与时间计算出一个速度值,该值与此临界值相比较,如果大于临界值,则进行自动翻页
Inertia否开启滚动惯性
Brake开启惯性后,在用户停止触摸后滚动多快停止,0 表示永不停止,1 表示立刻停止
Elastic布尔值,是否回弹
Bounce Duration浮点数,回弹所需要的时间。取值范围是 0-10
Indicator页面视图指示器组件
Page Turning Speed每个页面翻页时所需时间,单位:秒。
Page Turning Event Timing设置 PageView、PageTurning 事件的发送时机
Page Events数组,滚动视图的事件回调函数
Cancel Inner Events布尔值,是否在滚动行为时取消子节点上注册的触摸事件

三、组件使用 

  • 创建PageView组件

       在Cocos Creator中创建一个新的场景或节点。然后,从“节点”菜单中选择“PageView”组件,将其添加到场景或节点中。您也可以通过在场景编辑器中单击右键并选择“添加组件”来添加组件。

  • 设置PageView属性

       添加了PageView组件后,您需要设置它的属性。您可以通过单击场景编辑器中的PageView组件来打开属性检查器。在属性检查器中,您可以更改PageView的属性,例如:

  1. Content节点:这是PageView中包含的所有页面的容器节点。您可以将Content节点设置为任何节点,但是建议将其设置为“Layout”节点,以便管理所有页面的布局。
  2. Page节点:这是PageView中包含的每个页面的节点。您可以将Page节点设置为任何节点,但是建议将其设置为“Sprite”节点,以便显示图像。
  3. Indicator节点:这是PageView中包含的指示器的节点。您可以将Indicator节点设置为任何节点,但是建议将其设置为“Layout”节点,以便管理指示器的布局。
  4. 方向:PageView的滚动方向。它可以是水平或垂直。
  5. 自动滚动:启用自动滚动将使PageView自动滚动到下一页。您可以设置滚动的时间和延迟。
  6. 循环滚动:启用循环滚动将使PageView可以无限滚动,而不是在达到最后一页时停止滚动。
  7. 翻页效果:PageView的翻页效果。它可以是简单的翻页,或者带有缩放或淡入淡出效果的翻页。
  • 添加页面

       在PageView中添加页面非常简单。您可以在Content节点中创建新的Page节点,并将其作为Content节点的子节点添加到PageView中。然后,您可以将页面节点的位置和大小设置为适当的值,以便它与其他页面一起构成一个完整的页面视图。

  • 添加指示器

       您可以使用Indicator节点来添加指示器,以便在PageView中显示当前页面的位置。您可以将Indicator节点添加到PageView中,并将其作为PageView的子节点添加到Content节点下面。然后,您可以将指示器节点的位置和大小设置为适当的值,并根据需要设置指示器的样式。

  • 使用PageView组件

       您可以在代码中获取PageView组件,并使用它来滚动页面,跳转到特定的页面,或者处理PageView的事件。

       例如,您可以使用以下代码来获取PageView组件:

var pageView = this.node.getComponent(cc.PageView);

       然后,您可以使用以下代码来滚动到下一页:

pageView.scrollToNextPage();

       或者,您可以使用以下代码来跳转到特定的页面:

pageView.setCurrentPageIndex(pageIndex);

四、脚本示例

       下面是一个使用PageView组件实现分页视图效果的示例代码:

cc.Class({
    extends: cc.Component,
    properties: {
        pageViewNode: cc.Node, // PageView节点
        pageIndicatorNode: cc.Node, // 分页指示器节点
    },
    onLoad () {
        let pageView = this.pageViewNode.getComponent(cc.PageView);
        pageView.node.on('page-turning', this.onPageTurning, this);
        this.initPageIndicator(pageView);
    },
    initPageIndicator (pageView) {
        let indicator = this.pageIndicatorNode;
        let pages = pageView.getPages();
        let count = pages.length;
        for (let i = 0; i < count; i++) {
            let node = cc.instantiate(indicator);
            node.active = true;
            node.parent = indicator.parent;
            node.position = cc.v2((i - (count - 1) / 2) * 30, 0);
        }
        pageView.node.on('page-turning', (event) => {
            let index = event.getCurrentPageIndex();
            let children = indicator.parent.children;
            for (let i = 0; i < children.length; i++) {
                let child = children[i];
                if (child !== indicator) {
                    child.color = (i === index) ? cc.Color.WHITE : cc.Color.GRAY;
                }
            }
        }, this);
    },
    onPageTurning (event) {
        console.log('Page Turning');
    },
});

       通过以上代码,我们可以动态地创建一个PageView节点,并添加PageView组件。在实际开发中,可以根据需要修改和扩展代码。需要注意的是,为了显示分页指示器,我们还需要创建一个分页指示器节点,并在代码中进行初始化。


       总之,使用Cocos Creator的PageView组件可以帮助我们实现各种分页视图效果,例如引导页、轮播图等。通过设置PageView组件的属性和事件,可以实现各种不同的分页视图效果,例如滑动方向、翻页效果、自动翻页等。

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

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

相关文章

OpenCV算法加速的一些学习总结

一、概述 算法加速在实际软件层面应用来说 大数据和复杂计算的过程中 算法优化&#xff0c;指降低算法计算复杂度&#xff0c;设计新算法快速求解&#xff0c;比如Hungarian匹配算法。或牺牲一些内存&#xff0c;预计算一些重复计算的过程&#xff0c;减少程序层面的复杂度。 …

c语言实例练习笔记

本博文参考题目的地址看右边----》C 语言实例 | 菜鸟教程 以下为个人边练习边敲记录&#xff08;解法不一定和官方一样&#xff0c;会自己扩展一些&#xff0c;练习嘛&#xff0c;肯定是学到的都用上&#xff0c;算检验之前的学进去的是不是对的。&#xff09; C 语言实例 - …

【项目管理】ubuntu2204 图片合成视频

ubuntu 22.04 多张图片合成视频&#xff0c;多个视频合成一个大视频 环境&#xff1a; ubuntu 22.04 LTS 工具&#xff1a; ffmpeg ffmpeg 多张图片合成视频 在 ubuntu 下全选目录下的所有文件&#xff0c;右键 rename, 选择 1,2,3,4 即可&#xff1b;当然也可以使用其他命名方…

uni-app 中模拟器真机运行app

之前打包过app&#xff0c;调试方式是用usb连接电脑和手机&#xff0c;过程中也遇到了很多问题&#xff0c;忘记了怎么解决的&#xff0c;今天又遇到了打包app的项目&#xff0c;因为在开发app这方面经验不足&#xff0c;所以踩了很多坑&#xff0c;花了好几个小时才研究好app在…

学系统集成项目管理工程师(中项)系列06a_信息系统安全管理(上)

1. 信息安全 1.1. 保护信息的保密性、完整性、可用性 1.2. 另外也包括其他属性&#xff0c;如&#xff1a;真实性、可核查性、不可抵赖性和可靠性 2. 信息安全属性及目标 2.1. 保密性(Confidentiality&#xff09; 2.1.1. 信息不被泄露给未授权的个人、实体和过程或不被其…

【python】统计代码行数 | 统计当前文件夹里所有代码文件的行数

背景 写了一堆.cs文件 想看看一共写了多少行 代码 import os import chardet# Check if a file has the given extension def has_extension(file, extension):return os.path.splitext(file)[1] extension# Count the number of non-empty lines in a file def count_line…

拍照时脸背光怎么办?拍摄的逆光人像照如何修复才能更好看?

拍摄逆光人像会产生迷人的轮廓光&#xff0c;发丝看起来会很美丽&#xff0c;并可能拍到好看的星芒&#xff0c;但是&#xff01;直接拍摄很可能经常会对不上焦&#xff0c;或者会拍出大黑脸&#xff0c;这时就需要很多技巧啦。 完成一张好的逆光照片需要前期拍摄和后期修图相…

生成式模型与辨别式模型

分类模型可以分为两大类:生成式模型与辨别式模型。本文解释了这两种模型类型之间的区别&#xff0c;并讨论了每种方法的优缺点。 辨别式模型 辨别式模型是一种能够学习输入数据和输出标签之间关系的模型&#xff0c;它通过学习输入数据的特征来预测输出标签。在分类问题中&…

Revit相关问题:符号线,转转问题,生成三维视图

一、Revit符号线如何画粗一些?如何自定义符号线子类别? 1、Revit在族里面符号线的粗细、显示颜色、显示线型为符号线的子类别控制! 你可以通过&#xff0c;管理选项卡新建子类别&#xff0c;然后在画符号线的时候应用该子类别! 新建符号线对象样式 应用子类别 二、Revit三维模…

YOLOv7+单目跟踪

YOLOv7单目跟踪 1. 目标跟踪2. 测距模块2.1 设置测距模块2.2 添加测距 3. 实验效果 相关链接 1. YOLOv5单目测距&#xff08;python&#xff09; 2. YOLOv7单目测距&#xff08;python&#xff09; 3. 具体效果已在Bilibili发布&#xff0c;点击跳转 1. 目标跟踪 用yolov7实现…

Moviepy模块之视频添加图片水印

文章目录 前言视频添加图片水印1.引入库2.加载视频文件3.加载水印图片4.缩放水印图片大小5.设置水印的位置5.1 相对于视频的左上角5.2 相对于视频的左下角5.3 相对于视频的右上角5.4 相对于视频的右下角5.5 相对于视频的左中位置5.6 相对于视频的正中位置5.7 相对于视频的右中位…

【设计模式】23种设计模式之结构型模式

一、适配器设计模式 1、是什么&#xff1f; 1、适配器模式将某个类的接口转换成客户端期望的另一个接口表示&#xff0c;主要的目的是兼容性&#xff0c;让原本因接口不匹配不能一起工作的两个类可以协同工作 2、适配器模式属于结构型模式 3、主要分为三类&#xff1a;类适配…

【机器学习】EM原理和K-mean聚类

一、教程说明 EM算法就是expect maxmise算法&#xff0c;就是“期望最大化”的缩写。本篇首先提出&#xff1a;1 什么是期望&#xff1f; 2 期望最大化是个啥意思&#xff1f;k-mean聚类中如何用EM算法&#xff1f; 所涉及的概念&#xff1a; 期望 期望的加权平均理解 概率…

工业网关开发:IxCahriot测试吞吐量

吞吐量测试可以确定被测试设备或被测试系统在不丢弃包的情况下&#xff0c;设备或系统能够接受并转发的最大有效数据。在测试中以一定的速率发送一定数量的帧&#xff0c;并计算待测设备接收的帧&#xff0c;如果发送的帧与接受的帧数量相等&#xff0c;那么就将发送速率提高并…

ASEMI代理ADA4940-1ACPZ-R7原装ADI车规级ADA4940-1ACPZ-R7

编辑&#xff1a;ll ASEMI代理ADA4940-1ACPZ-R7原装ADI车规级ADA4940-1ACPZ-R7 型号&#xff1a;ADA4940-1ACPZ-R7 品牌&#xff1a;ADI/亚德诺 封装&#xff1a;LFCSP-16 批号&#xff1a;2023 引脚数量&#xff1a;16 安装类型&#xff1a;表面贴装型 ADA4940-1ACPZ-…

ChatGPT 和 Elasticsearch:OpenAI 遇见私有数据

作者&#xff1a;Jeff Vestal 结合 Elasticsearch 的搜索相关性和 OpenAI 的 ChatGPT 的问答功能来查询你的数据。 在此博客中&#xff0c;你将了解如何使用 Elasticsearch 将 ChatGPT 连接到专有数据存储&#xff0c;并为你的数据构建问答功能。 什么是聊天 GPT&#xff1f; …

Baumer工业相机堡盟工业相机如何联合BGAPISDK和OpenCVSharp实现图像的对数Log变换算法增强(C#)

Baumer工业相机堡盟工业相机如何联合BGAPISDK和OpenCVSharp实现图像的对数Log变换算法增强&#xff08;C#&#xff09; Baumer工业相机Baumer工业相机使用图像算法增加图像的技术背景Baumer工业相机通过BGAPI SDK联合OpenCV使用图像增强算法1.引用合适的类文件2.BGAPI SDK在图像…

ASEMI代理ADI亚德诺ADA4940-1ACPZ-R7车规级芯片

编辑-Z ADA4940-1ACPZ-R7芯片参数&#xff1a; 型号&#xff1a;ADA4940-1ACPZ-R7 −3 dB小信号带宽&#xff1a;260 MHz −3 dB大信号带宽&#xff1a;25 MHz 0.1dB平坦度的带宽&#xff1a;14.5 MHz 斜率&#xff1a;95 V/s 超速恢复时间&#xff1a;86 ns 输入电压噪…

【数据结构】堆的应用(堆排序的实现 + (向上/向下)建堆时间复杂度证明 + TopK问题(笔记总结))

&#x1f466;个人主页&#xff1a;Weraphael ✍&#x1f3fb;作者简介&#xff1a;目前学习C和算法 ✈️专栏&#xff1a;数据结构 &#x1f40b; 希望大家多多支持&#xff0c;咱一起进步&#xff01;&#x1f601; 如果文章对你有帮助的话 欢迎 评论&#x1f4ac; 点赞&…

Redis高可用之3种集群方案对比

Redis集群方案使用建议&#xff1a; Redis cluster&#xff1a;除非是1000个节点以上的超大规模集群&#xff0c;优先考虑使用Redis clustercodis&#xff1a;旧项目如果仍在使用codis&#xff0c;可继续使用&#xff0c;但也推荐迁移到Redis clustertwemproxy&#xff1a;不建…