• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# TextTimer
2
3通过文本显示计时信息并控制其计时器状态的组件。
4
5>  **说明:**
6>
7> 该组件从API Version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
8
9## 子组件
10
1112
13## 接口
14
15TextTimer(options?: TextTimerOptions)
16
17**参数:**
18
19| 参数名 | 参数类型 | 必填 | 参数描述 |
20| -------- | -------- | -------- | -------- |
21| options |  [TextTimerOptions](#texttimeroptions对象说明)| 否 | 通过文本显示计时信息并控制其计时器状态的组件参数。 |
22
23## TextTimerOptions对象说明
24
25| 参数名     | 参数类型     | 必填  | 参数描述                   |
26| ----------- | -------- | -------- | -------- |
27| isCountDown | boolean  | 否   | 是否倒计时。<br/>默认值:false |
28| count       | number   | 否   | 倒计时时间(isCountDown为true时生效),单位为毫秒。最长不超过86400000毫秒(24小时)。&nbsp;0&lt;count&lt;86400000时,count值为倒计时初始值。否则,使用默认值为倒计时初始值。<br/>默认值:60000 |
29| controller  | [TextTimerController](#texttimercontroller) | 否  | TextTimer控制器。 |
30
31## 属性
32
33除支持[通用属性](ts-universal-attributes-size.md)和[文本通用属性](ts-universal-attributes-text-style.md)的fontColor、fontSize、fontStyle、fontWeight、fontFamily外,还支持以下属性:
34
35| 名称        | 参数类型       | 描述                             |
36| -------- | ---------------------- | ---------------------- |
37| format   | string   | 自定义格式,需至少包含一个HH、mm、ss、SS中的关键字。如使用yy、MM、dd等日期格式,则使用默认值。<br/>默认值:'HH:mm:ss.SS' |
38| textShadow<sup>11+</sup>  |  [ShadowOptions](ts-universal-attributes-image-effect.md#shadowoptions对象说明)&nbsp;\|&nbsp;Array&lt;[ShadowOptions](ts-universal-attributes-image-effect.md#shadowoptions对象说明)> | 设置文字阴影效果。该接口支持以数组形式入参,实现多重文字阴影。<br/>**说明:**<br/>不支持fill字段, 不支持智能取色模式。 |
39
40## 事件
41
42| 名称                                       | 功能描述                                     |
43| ---------------------------------------- | ---------------------------------------- |
44| onTimer(event:&nbsp;(utc:&nbsp;number,&nbsp;elapsedTime:&nbsp;number)&nbsp;=&gt;&nbsp;void) | 时间文本发生变化时触发。<br/>utc:Linux时间戳,即自1970年1月1日起经过的时间,单位为设置格式的最小单位。<br/>elapsedTime:计时器经过的时间,单位为设置格式的最小单位。 <br/> **说明:** <br/>锁屏状态和应用后台状态下不会触发该事件。|
45
46## TextTimerController
47
48TextTimer组件的控制器,用于控制文本计时器。一个TextTimer组件仅支持绑定一个控制器。
49
50### 导入对象
51
52```
53textTimerController: TextTimerController = new TextTimerController()
54
55```
56
57### start
58
59start()
60
61计时开始。
62
63### pause
64
65pause()
66
67计时暂停。
68
69### reset
70
71reset()
72
73重置计时器。
74
75## 示例
76### 示例1
77```ts
78// xxx.ets
79@Entry
80@Component
81struct TextTimerExample {
82  textTimerController: TextTimerController = new TextTimerController()
83  @State format: string = 'mm:ss.SS'
84
85  build() {
86    Column() {
87      TextTimer({ isCountDown: true, count: 30000, controller: this.textTimerController })
88        .format(this.format)
89        .fontColor(Color.Black)
90        .fontSize(50)
91        .onTimer((utc: number, elapsedTime: number) => {
92          console.info('textTimer notCountDown utc is:' + utc + ', elapsedTime: ' + elapsedTime)
93        })
94      Row() {
95        Button("start").onClick(() => {
96          this.textTimerController.start()
97        })
98        Button("pause").onClick(() => {
99          this.textTimerController.pause()
100        })
101        Button("reset").onClick(() => {
102          this.textTimerController.reset()
103        })
104      }
105    }
106  }
107}
108```
109
110
111![zh-cn_image_0000001251007721](figures/zh-cn_image_0000001251007721.gif)
112
113### 示例2
114``` ts
115@Entry
116@Component
117struct TextTimerExample {
118  @State textShadows : ShadowOptions | Array<ShadowOptions> = [{ radius: 10, color: Color.Red, offsetX: 10, offsetY: 0 },{ radius: 10, color: Color.Black, offsetX: 20, offsetY: 0 },
119      { radius: 10, color: Color.Brown, offsetX: 30, offsetY: 0 },{ radius: 10, color: Color.Green, offsetX: 40, offsetY: 0 },
120      { radius: 10, color: Color.Yellow, offsetX: 100, offsetY: 0 }]
121  build() {
122    Column({ space: 8 }) {
123      TextTimer().fontSize(50).textShadow(this.textShadows)
124    }
125  }
126}
127```
128![TextshadowExample](figures/text_timer_textshadow.png)