原型制作 | 歌词与进度条的位置呼应

2024-08-23 04:20

本文主要是介绍原型制作 | 歌词与进度条的位置呼应,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在之前的案例里面咱们做过了歌词滚动的效果,具体效果是这样的,点击播放按钮,歌词开始滚动;点击暂停按钮,歌词停止滚动,再次点击播放,歌词会继续滚动;一直播放直到结束,歌词会滚动到结尾处停止。

(详情:https://mp.weixin.qq.com/s/hZpjy5INdtBS9Y_nEw8nsQ)

在上面讲的案例的基础上,还可以进行进一步的制作,让这个播放器更加高保真。先看看具体要做到怎样吧。

1、点击播放按钮,进度条跑动,点击暂停按钮,进度条暂停,再次点击进度条继续跑动

2、拖动进度条,歌词会滚动到进度条呼应的位置;拖动歌词,进度条会滚动到歌词呼应的位置

3、点击进度条的某个位置,进度条会滚动到该位置,歌词也随之滚动到与其呼应的位置

大家也可以通过预览自己进行操作,亲身体验一下具体操作是如何的。https://27hq3t.axshare.com

那接下来就一起来看一下,我们上面说的三个效果可以怎么样做吧。第1个效果看起来是不是跟我们前面说过的歌词滚动很像呢?大家可以参考上面说的文章去做,这里就不再详细讲了。

有一点要注意的是,按照我们的做法,主要做两个动态面板进行嵌套。外层的动态面板是一个完整的进度条,里面还有一个动态面板是当前的进度。因为我们后面需要做到进度条的拖动,所以这里就事先将其用动态面板做好了。需要注意“当前进度”的位置。

因为这里对按钮的操作跟之前案例一样,所以我们的触发部件和用例时间也是一样。还记得用以辅助的动态面板吗?同样是在它的状态改变时设置当前进度的移动。分析方法也是一样,可以自己做一做,如果有问题可以联系我们。

接下来看看第2个效果。整个逻辑详细大家都没有问题。首先设置进度条进行拖动。这个简单,设置当前进度(这里命名为time,下面均称为time)的拖动时,time进行水平拖动,这里别忘记设置边界。

然后,在拖动结束时设置歌词移动。这里主要就是看歌词移动到什么位置。歌词和time移动的比例是1300:200(可以通过起始和终点位置来确定)也就是6.5:1。得出比例之后就好办了,歌词的x轴坐标是0,所以移动到的位置,x直接填0就行。首先算进度条移动了多少距离,然后根据刚才算出的比例就可以轻松得出y的的位置了。

这个图可以很明确地看出位置关系:移动距离=当前位置-初始位置。因为当前位置是不确定的,所以我们可以用局部变量去获取。

得出这里数值之后乘以6.5,就是歌词的移动距离。我们要得到的是具体位置,还是根据上面的图示和公式可以得到,垂直方向的原理是一样的。看看最后得出的表达式。

另外的一个交互也是一样的分析方法,这里就不分析了。那我们往下看,第3个效果其实有想法跟前也是相似,同样用到了上面移动距离的图示和公式,在这里需要注意的是什么呢?触发部件。

在未播放的部分,我们点击进度条让进度条往前进。这时候触发部件是底层的空白进度条。在这里我们设置歌词和time一起移动。那这时的位置判断依据可以根据鼠标所在位置,但是要注意,这里鼠标位置是在主页面的位置,所以要将完整的进度条前的距离减去。


 

另外一个是点击已经播放的部分,这时就不能点击底层的空白进度条了,因为按照我们的做法,它已经被time覆盖了故而无法进行点击。所以这时触发部件应该是time这个动态面板。移动位置的分析方法还是一样。

将我们上面说的三个效果,或者说叫三组效果做出来之后,我们可以通过对播放暂停按钮,进度条,滚动条的控制来达到歌词和进度条的位置互相呼应。做起来其实不难,只要理解了彼此之间的位置关系,就只需设置它们进行移动即可。

掌握了分析方法之后,不单单是可以用在这个交互上面,还可以将其引申到其他的交互中。比如可以控制图片的缩放,图片的旋转等等。总之就是一句话,掌握方法,举一反三。

这篇关于原型制作 | 歌词与进度条的位置呼应的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1098332

相关文章

在JS中的设计模式的单例模式、策略模式、代理模式、原型模式浅讲

1. 单例模式(Singleton Pattern) 确保一个类只有一个实例,并提供一个全局访问点。 示例代码: class Singleton {constructor() {if (Singleton.instance) {return Singleton.instance;}Singleton.instance = this;this.data = [];}addData(value)

POJ1269 判断2条直线的位置关系

题目大意:给两个点能够确定一条直线,题目给出两条直线(由4个点确定),要求判断出这两条直线的关系:平行,同线,相交。如果相交还要求出交点坐标。 解题思路: 先判断两条直线p1p2, q1q2是否共线, 如果不是,再判断 直线 是否平行, 如果还不是, 则两直线相交。  判断共线:  p1p2q1 共线 且 p1p2q2 共线 ,共线用叉乘为 0  来判断,  判断 平行:  p1p

用Unity2D制作一个人物,实现移动、跳起、人物静止和动起来时的动画:中(人物移动、跳起、静止动作)

上回我们学到创建一个地形和一个人物,今天我们实现一下人物实现移动和跳起,依次点击,我们准备创建一个C#文件 创建好我们点击进去,就会跳转到我们的Vision Studio,然后输入这些代码 using UnityEngine;public class Move : MonoBehaviour // 定义一个名为Move的类,继承自MonoBehaviour{private Rigidbo

Linux Centos 迁移Mysql 数据位置

转自:http://www.tuicool.com/articles/zmqIn2 由于业务量增加导致安装在系统盘(20G)磁盘空间被占满了, 现在进行数据库的迁移. Mysql 是通过 yum 安装的. Centos6.5Mysql5.1 yum 安装的 mysql 服务 查看 mysql 的安装路径 执行查询 SQL show variables like

PDFQFZ高效定制:印章位置、大小随心所欲

前言 在科技编织的快节奏时代,我们不仅追求速度,更追求质量,让每一分努力都转化为生活的甜蜜果实——正是在这样的背景下,一款名为PDFQFZ-PDF的实用软件应运而生,它以其独特的功能和高效的处理能力,在PDF文档处理领域脱颖而出。 它的开发,源自于对现代办公效率提升的迫切需求。在数字化办公日益普及的今天,PDF作为一种跨平台、不易被篡改的文档格式,被广泛应用于合同签署、报告提交、证书打印等各个

OpenStack离线Train版安装系列—0制作yum源

本系列文章包含从OpenStack离线源制作到完成OpenStack安装的全部过程。 在本系列教程中使用的OpenStack的安装版本为第20个版本Train(简称T版本),2020年5月13日,OpenStack社区发布了第21个版本Ussuri(简称U版本)。 OpenStack部署系列文章 OpenStack Victoria版 安装部署系列教程 OpenStack Ussuri版

OpenStack镜像制作系列5—Linux镜像

本系列文章主要对如何制作OpenStack镜像的过程进行描述记录 CSDN:OpenStack镜像制作教程指导(全) OpenStack镜像制作系列1—环境准备 OpenStack镜像制作系列2—Windows7镜像 OpenStack镜像制作系列3—Windows10镜像 OpenStack镜像制作系列4—Windows Server2019镜像 OpenStack镜像制作

OpenStack镜像制作系列4—Windows Server2019镜像

本系列文章主要对如何制作OpenStack镜像的过程进行描述记录  CSDN:OpenStack镜像制作教程指导(全) OpenStack镜像制作系列1—环境准备 OpenStack镜像制作系列2—Windows7镜像 OpenStack镜像制作系列3—Windows10镜像 OpenStack镜像制作系列4—Windows Server2019镜像 OpenStack镜像制作系

OpenStack镜像制作系列2—Windows7镜像

本系列文章主要对如何制作OpenStack镜像的过程进行描述记录 CSDN:OpenStack镜像制作教程指导(全) OpenStack镜像制作系列1—环境准备 OpenStack镜像制作系列2—Windows7镜像 OpenStack镜像制作系列3—Windows10镜像 OpenStack镜像制作系列4—Windows Server2019镜像 OpenStack镜像制作系列

OpenStack镜像制作系列1—环境准备

本系列文章主要对如何制作OpenStack镜像的过程进行描述记录 CSDN:OpenStack镜像制作教程指导(全) OpenStack镜像制作系列1—环境准备 OpenStack镜像制作系列2—Windows7镜像 OpenStack镜像制作系列3—Windows10镜像 OpenStack镜像制作系列4—Windows Server2019镜像 OpenStack镜像制作