HarmonyOS】ArkTS学习之基于TextTimer的简易计时器的elapsedTime最小时间单位问题

news/2025/1/15 18:03:30/

本文旨在纪录自己对TextTimer使用过程的疑惑问题
我在查看教程时候,发现很多博客在onTimer(event: (utc: number, elapsedTime: number) => void) 这里提到elapsedTime:计时器经过的时间,单位为毫秒。我不清楚是否为版本问题。
在我查看version11和version10的api时候,说的都是设置格式的最小单位。
在这里插入图片描述
经过个人检验的情况是:version11和version10都是依据格式(format)的最小单位设置的。
例如:

@Entry
@Component
struct TextTimerExample {textTimerController: TextTimerController = new TextTimerController()@State format: string = 'mm:ss.SS'build() {Column() {TextTimer({ isCountDown: true, count: 30000, controller: this.textTimerController }).format(this.format).fontColor(Color.Black).fontSize(50).onTimer((utc: number, elapsedTime: number) => {console.info('textTimer notCountDown utc is:' + utc + ', elapsedTime: ' + elapsedTime)})Row() {Button("start").onClick(() => {this.textTimerController.start()})Button("pause").onClick(() => {this.textTimerController.pause()})Button("reset").onClick(() => {this.textTimerController.reset()})}}}
}

在这里插入图片描述
这里显然·应该是5300毫秒,但是显示530,如果考虑到format中最小为SS,也就是10ms,那么就说得通了
同理:

import router from '@ohos.router'@Entry
@Component
struct TextTimerPage {@State message: string = '通过文本显示计时信息并控制其计时器状态的组件。'@State onTimerContent: string = ''// TextTimer的控制器private controller: TextTimerController = new TextTimerController()build() {Row() {Scroll() {Column() {Text(this.message).fontSize(20).fontWeight(FontWeight.Bold).width('96%')Blank(12)TextTimer({ isCountDown: true, count: 120000, controller: this.controller }).fontSize(20).fontColor(Color.Red).format('mm:ss').onTimer((utc: number, elapsedTime: number) => { // utc 时间戳, elapsedTime计时器经过的时间this.onTimerContent = 'textTimer 时间戳 utc is:' + utc + ', 计时器经过的时间 elapsedTime: ' + elapsedTime;})Blank(12)Row() {Button('计时器启动').width('30%').onClick(() => {this.controller.start();})Button('计时器暂停').width('30%').margin({ left: '2.5%', right: '2.5%' }).onClick(() => {this.controller.pause();})Button('计时器重置').width('30%').onClick(() => {this.controller.reset();})}.alignItems(VerticalAlign.Center)Blank(12)Text(this.onTimerContent).width('96%').fontSize(20).fontColor(Color.Red)Blank(12)Button("文本文档").fontSize(20).backgroundColor('#007DFF').width('96%').onClick(() => {// 处理点击事件逻辑router.pushUrl({url: "pages/baseComponent/textTimer/TextTimerDesc",})})}.width('100%')}}.padding({ top: 12, bottom: 12 })}
}

在这里插入图片描述

这里应该是5s,也就是5000ms,如果考虑format中的最小单位为s,也说得通

再次考虑这个情况:

// xxx.ets
@Entry
@Component
struct TextTimerExample {textTimerController: TextTimerController = new TextTimerController()build() {Column() {TextTimer({controller: this.textTimerController}).format('mm:ss:SSS').fontColor(Color.Black).fontSize(50).onTimer((utc: number, elapsedTime: number) => {console.info('textTimer notCountDown utc is:' + utc + ', elapsedTime: ' + elapsedTime)})Row() {Button("start").onClick(() => {this.textTimerController.start();});Button("pause").onClick(() => {this.textTimerController.pause();});Button("reset").onClick(() => {this.textTimerController.reset();});}}}
}

在这里插入图片描述
此时就是以毫秒做单位了

但是又出现一个情况:
我师兄在使用version11时候,即使format是SS结尾,也可以到毫秒,这就不清楚什么原因了。

总之,本文只做自己学习中遇到的疑惑纪录。


http://www.ppmy.cn/news/1525594.html

相关文章

编写XBOX控制器实现鼠标键盘输入

1.核心部分, XINPUT输入封装 XInput封装https://mp.csdn.net/mp_blog/creation/editor/1420701282.对话框窗口编写 Win32 对话框封装-CSDN博客https://blog.csdn.net/Flame_Cyclone/article/details/142110008?spm1001.2014.3001.5501 3.使用到的其他封装 字符串编码转换与…

Azure web app has no access to openai private endpoint in virtual network

题意:"Azure Web 应用无法访问虚拟网络中的 OpenAI 私有端点。" 问题背景: I am trying to host a web application similar to a private ChatGPT instance within a secluded virtual network, ensuring that theres no external internet …

以太网--TCP/IP协议(二)

上文中讲述了IP协议,本文主要来讲一下TCP协议。 TCP协议 (1)端到端通信 直接把源主机应用程序产生的数据传输到目的主机使用这 些数据的应用程序中,就是端到端通信。 (2)传输层端口 公认端口&#xff0…

CCF刷题计划——训练计划(反向拓扑排序)

训练计划 计算机软件能力认证考试系统 这道题70分还是很好拿的。后面30分需要用到 反向拓扑排序 ,相对而言就麻烦点,需要逆序遍历。不着急,我们慢慢来。首先给出70分的代码。 本题可以学到:反向拓扑排序 70分题解:…

红黑树的删除

文章目录 前言一.删除的节点左子树右子树都有二.删除的节点只有左/右子树删除调整操作 三.删除的节点没有孩子1.删除的节点为红色2.删除的节点为黑色1).兄弟节点为黑色(1).兄弟节点至少有一个红色的孩子节点LL型RR型RL型LR型 (2).兄弟节点没有孩子或所有孩子为黑色 2).兄弟节点…

【贪心算法】贪心算法

贪心算法简介 1.什么是贪心算法2.贪心算法的特点3.学习贪心的方向 点赞👍👍收藏🌟🌟关注💖💖 你的支持是对我最大的鼓励,我们一起努力吧!😃😃 1.什么是贪心算法 与其说是…

跨系统环境下LabVIEW程序稳定运行

在LabVIEW开发中,不同电脑的配置和操作系统(如Win11与Win7)可能对程序的稳定运行产生影响。为了确保程序在不同平台上都能正常且稳定运行,需要从兼容性、驱动、以及性能优化等多个方面入手。本文将详细介绍如何在不同系统环境下&a…

Integer 缓存

在 Java 中,如果你通过 new Integer(value) 显式创建一个 Integer 对象,以下几点需要注意: 内存中的 Integer 对象 缓存范围: Java 自动缓存的 Integer 对象范围是从 -128 到 127。这些对象在类加载时被创建并存储在内存中。 使…