当前位置: 首页 > news >正文

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

本文旨在纪录自己对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结尾,也可以到毫秒,这就不清楚什么原因了。

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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • LinuxPTP的安装与应用
  • HCIE云计算--灾备
  • 网络协议-SSH
  • claude和chatgpt对比:哪一个更适合你?
  • AI自动生成PPT哪个软件好?如何自动生成专业级PPT?
  • 仿论坛项目--Kafka,构建TB级异步消息系统
  • 数据结构基本知识
  • 随机森林的知识博客:原理与应用
  • pytorch正向传播没问题,loss.backward()使定义的神经网络中权重参数变为nan
  • ELK学习笔记(一)——使用K8S部署ElasticSearch8.15.0集群
  • 目标检测-YOLOv4
  • 代码随想录算法训练营Day37|完全背包问题、518.零钱兑换II、377. 组合总和 Ⅳ、70. 爬楼梯(进阶版)
  • box64 安装
  • 微信小程序实践案例
  • IP/TCP/UDP协议的关键知识点
  • 【391天】每日项目总结系列128(2018.03.03)
  • 【402天】跃迁之路——程序员高效学习方法论探索系列(实验阶段159-2018.03.14)...
  • 【每日笔记】【Go学习笔记】2019-01-10 codis proxy处理流程
  • bearychat的java client
  • extjs4学习之配置
  • python docx文档转html页面
  • ReactNativeweexDeviceOne对比
  • Spark RDD学习: aggregate函数
  • sublime配置文件
  • Vue ES6 Jade Scss Webpack Gulp
  • VuePress 静态网站生成
  • 搞机器学习要哪些技能
  • 机器学习学习笔记一
  • 聚簇索引和非聚簇索引
  • 聊一聊前端的监控
  • 什么是Javascript函数节流?
  • 我与Jetbrains的这些年
  • AI又要和人类“对打”,Deepmind宣布《星战Ⅱ》即将开始 ...
  • NLPIR智能语义技术让大数据挖掘更简单
  • 好程序员web前端教程分享CSS不同元素margin的计算 ...
  • ​​​​​​​​​​​​​​Γ函数
  • ​​​​​​​STM32通过SPI硬件读写W25Q64
  • #includecmath
  • $.ajax中的eval及dataType
  • (Charles)如何抓取手机http的报文
  • (C语言)fread与fwrite详解
  • (DenseNet)Densely Connected Convolutional Networks--Gao Huang
  • (Redis使用系列) Springboot 在redis中使用BloomFilter布隆过滤器机制 六
  • (八)Spring源码解析:Spring MVC
  • (补充)IDEA项目结构
  • (四)汇编语言——简单程序
  • (原創) 如何刪除Windows Live Writer留在本機的文章? (Web) (Windows Live Writer)
  • .NET 8 跨平台高性能边缘采集网关
  • .NET Conf 2023 回顾 – 庆祝社区、创新和 .NET 8 的发布
  • .NET Core 和 .NET Framework 中的 MEF2
  • .NET Reactor简单使用教程
  • .NET 直连SAP HANA数据库
  • .NET/C# 使用反射调用含 ref 或 out 参数的方法
  • .net遍历html中全部的中文,ASP.NET中遍历页面的所有button控件
  • .NET中GET与SET的用法