awtk/docs/manual/widget_animator_t.md

317 lines
9.7 KiB
Markdown
Raw Normal View History

2018-12-20 17:33:31 +08:00
## widget\_animator\_t
### 概述
2019-11-15 11:33:43 +08:00
控件动画接口。
2019-01-15 14:34:05 +08:00
----------------------------------
2018-12-20 17:33:31 +08:00
### 函数
<p id="widget_animator_t_methods">
| 函数名称 | 说明 |
| -------- | ------------ |
2019-10-09 10:16:54 +08:00
| <a href="#widget_animator_t_widget_animator_destroy">widget\_animator\_destroy</a> | 销毁animator对象。 |
| <a href="#widget_animator_t_widget_animator_init">widget\_animator\_init</a> | 初始化。仅供子类内部使用。 |
| <a href="#widget_animator_t_widget_animator_off">widget\_animator\_off</a> | 注销指定事件的处理函数。 |
2019-12-14 13:25:56 +08:00
| <a href="#widget_animator_t_widget_animator_on">widget\_animator\_on</a> | 注册指定事件的处理函数。 |
2019-10-09 10:16:54 +08:00
| <a href="#widget_animator_t_widget_animator_pause">widget\_animator\_pause</a> | 暂停动画。 |
| <a href="#widget_animator_t_widget_animator_set_destroy_when_done">widget\_animator\_set\_destroy\_when\_done</a> | 设置完成时是否自动销毁动画对象(缺省销毁)。 |
| <a href="#widget_animator_t_widget_animator_set_name">widget\_animator\_set\_name</a> | 设置名称。 |
2023-09-24 10:43:01 +08:00
| <a href="#widget_animator_t_widget_animator_set_relayout">widget\_animator\_set\_relayout</a> | 设置每帧是否重新布局。 |
2019-10-09 10:16:54 +08:00
| <a href="#widget_animator_t_widget_animator_set_repeat">widget\_animator\_set\_repeat</a> | 设置为重复模式。 |
| <a href="#widget_animator_t_widget_animator_set_reversed">widget\_animator\_set\_reversed</a> | 设置为逆向模式。 |
| <a href="#widget_animator_t_widget_animator_set_time_scale">widget\_animator\_set\_time\_scale</a> | 设置时间倍率,用于实现时间加速减速和停滞的功能。 |
| <a href="#widget_animator_t_widget_animator_set_yoyo">widget\_animator\_set\_yoyo</a> | 设置为yoyo模式。 |
| <a href="#widget_animator_t_widget_animator_start">widget\_animator\_start</a> | 启动动画。 |
| <a href="#widget_animator_t_widget_animator_stop">widget\_animator\_stop</a> | 停止动画。 |
2018-12-20 17:33:31 +08:00
### 属性
<p id="widget_animator_t_properties">
2019-01-17 15:56:15 +08:00
| 属性名称 | 类型 | 说明 |
2018-12-20 17:33:31 +08:00
| -------- | ----- | ------------ |
2019-10-09 10:16:54 +08:00
| <a href="#widget_animator_t_name">name</a> | char* | 名称。 |
#### widget\_animator\_destroy 函数
2018-12-21 18:29:29 +08:00
-----------------------
* 函数功能:
2019-11-15 11:33:43 +08:00
> <p id="widget_animator_t_widget_animator_destroy">销毁animator对象。
2019-10-16 09:02:32 +08:00
2019-09-04 14:17:18 +08:00
* 函数原型:
```
2019-10-09 10:16:54 +08:00
ret_t widget_animator_destroy (widget_animator_t* animator);
2018-12-21 11:39:05 +08:00
```
* 参数说明:
2018-12-20 17:33:31 +08:00
| 参数 | 类型 | 说明 |
| -------- | ----- | --------- |
| 返回值 | ret\_t | 返回RET\_OK表示成功否则表示失败。 |
| animator | widget\_animator\_t* | 动画对象。 |
2019-10-09 10:16:54 +08:00
#### widget\_animator\_init 函数
2018-12-21 18:29:29 +08:00
-----------------------
2018-12-21 11:39:05 +08:00
* 函数功能:
2019-11-15 11:33:43 +08:00
> <p id="widget_animator_t_widget_animator_init">初始化。仅供子类内部使用。
2019-10-16 09:02:32 +08:00
2018-12-21 11:39:05 +08:00
* 函数原型:
```
2023-06-29 10:44:29 +08:00
ret_t widget_animator_init (widget_animator_t* animator, widget_t* widget, uint32_t duration, uint32_t delay, easing_func_t easing);
2018-12-21 11:39:05 +08:00
```
* 参数说明:
2018-12-20 17:33:31 +08:00
| 参数 | 类型 | 说明 |
| -------- | ----- | --------- |
| 返回值 | ret\_t | 返回RET\_OK表示成功否则表示失败。 |
2019-10-09 10:16:54 +08:00
| animator | widget\_animator\_t* | 动画对象。 |
| widget | widget\_t* | 控件对象。 |
2023-12-26 20:05:44 +08:00
| duration | uint32\_t | 动画持续时间(毫秒)。 |
| delay | uint32\_t | 动画执行时间(毫秒)。 |
2023-06-29 10:44:29 +08:00
| easing | easing\_func\_t | 插值函数。 |
2019-10-09 10:16:54 +08:00
#### widget\_animator\_off 函数
2018-12-21 18:29:29 +08:00
-----------------------
2018-12-21 11:39:05 +08:00
* 函数功能:
2019-11-15 11:33:43 +08:00
> <p id="widget_animator_t_widget_animator_off">注销指定事件的处理函数。
2019-10-16 09:02:32 +08:00
2018-12-21 11:39:05 +08:00
* 函数原型:
```
2019-10-09 10:16:54 +08:00
ret_t widget_animator_off (widget_animator_t* animator, uint32_t id);
2018-12-21 11:39:05 +08:00
```
* 参数说明:
2018-12-20 17:33:31 +08:00
| 参数 | 类型 | 说明 |
| -------- | ----- | --------- |
| 返回值 | ret\_t | 返回RET\_OK表示成功否则表示失败。 |
2019-10-09 10:16:54 +08:00
| animator | widget\_animator\_t* | 动画对象。 |
| id | uint32\_t | widget\_animator\_on返回的ID。 |
#### widget\_animator\_on 函数
2018-12-21 18:29:29 +08:00
-----------------------
2018-12-21 11:39:05 +08:00
* 函数功能:
2019-12-14 13:25:56 +08:00
> <p id="widget_animator_t_widget_animator_on">注册指定事件的处理函数。
2018-12-20 17:33:31 +08:00
2018-12-21 11:39:05 +08:00
* 函数原型:
```
2023-06-29 10:44:29 +08:00
uint32_t widget_animator_on (widget_animator_t* animator, event_type_t type, event_func_t on_event, void* ctx);
2018-12-21 11:39:05 +08:00
```
* 参数说明:
2018-12-20 17:33:31 +08:00
| 参数 | 类型 | 说明 |
| -------- | ----- | --------- |
2019-10-09 10:16:54 +08:00
| 返回值 | uint32\_t | 返回id用于widget\_animator\_off。 |
| animator | widget\_animator\_t* | 动画对象。 |
2023-06-29 10:44:29 +08:00
| type | event\_type\_t | 事件类型。目前支持EVT\_ANIM\_START,EVT\_ANIM\_STOP,EVT\_ANIM\_PAUSE,EVT\_ANIM\_ONCE和EVT\_ANIM\_END。 |
2019-10-09 10:16:54 +08:00
| on\_event | event\_func\_t | 事件处理函数。 |
| ctx | void* | 事件处理函数上下文。 |
#### widget\_animator\_pause 函数
2018-12-21 18:29:29 +08:00
-----------------------
2018-12-21 11:39:05 +08:00
* 函数功能:
2019-11-15 11:33:43 +08:00
> <p id="widget_animator_t_widget_animator_pause">暂停动画。
2019-10-16 09:02:32 +08:00
2018-12-21 11:39:05 +08:00
* 函数原型:
```
2019-10-09 10:16:54 +08:00
ret_t widget_animator_pause (widget_animator_t* animator);
2018-12-21 11:39:05 +08:00
```
* 参数说明:
2018-12-20 17:33:31 +08:00
| 参数 | 类型 | 说明 |
| -------- | ----- | --------- |
2019-10-09 10:16:54 +08:00
| 返回值 | ret\_t | 返回RET\_OK表示成功否则表示失败。 |
| animator | widget\_animator\_t* | 动画对象。 |
#### widget\_animator\_set\_destroy\_when\_done 函数
2018-12-21 18:29:29 +08:00
-----------------------
2018-12-21 11:39:05 +08:00
* 函数功能:
2019-11-15 11:33:43 +08:00
> <p id="widget_animator_t_widget_animator_set_destroy_when_done">设置完成时是否自动销毁动画对象(缺省销毁)。
2019-10-16 09:02:32 +08:00
2018-12-21 11:39:05 +08:00
* 函数原型:
```
2019-10-09 10:16:54 +08:00
ret_t widget_animator_set_destroy_when_done (widget_animator_t* animator, bool_t destroy_when_done);
2018-12-21 11:39:05 +08:00
```
* 参数说明:
2018-12-20 17:33:31 +08:00
| 参数 | 类型 | 说明 |
| -------- | ----- | --------- |
| 返回值 | ret\_t | 返回RET\_OK表示成功否则表示失败。 |
2019-10-09 10:16:54 +08:00
| animator | widget\_animator\_t* | 动画对象。 |
| destroy\_when\_done | bool\_t | 完成时是否自动销毁动画对象。 |
#### widget\_animator\_set\_name 函数
2018-12-21 18:29:29 +08:00
-----------------------
2018-12-21 11:39:05 +08:00
* 函数功能:
2019-11-15 11:33:43 +08:00
> <p id="widget_animator_t_widget_animator_set_name">设置名称。
2019-10-16 09:02:32 +08:00
2018-12-21 11:39:05 +08:00
* 函数原型:
```
2019-10-09 10:16:54 +08:00
ret_t widget_animator_set_name (widget_animator_t* animator, const char* name);
2018-12-21 11:39:05 +08:00
```
* 参数说明:
2018-12-20 17:33:31 +08:00
| 参数 | 类型 | 说明 |
| -------- | ----- | --------- |
| 返回值 | ret\_t | 返回RET\_OK表示成功否则表示失败。 |
| animator | widget\_animator\_t* | 动画对象。 |
2019-10-09 10:16:54 +08:00
| name | const char* | 名称。 |
2023-09-24 10:43:01 +08:00
#### widget\_animator\_set\_relayout 函数
-----------------------
* 函数功能:
> <p id="widget_animator_t_widget_animator_set_relayout">设置每帧是否重新布局。
* 函数原型:
```
ret_t widget_animator_set_relayout (widget_animator_t* animator, bool_t relayout);
```
* 参数说明:
| 参数 | 类型 | 说明 |
| -------- | ----- | --------- |
| 返回值 | ret\_t | 返回RET\_OK表示成功否则表示失败。 |
| animator | widget\_animator\_t* | 动画对象。 |
| relayout | bool\_t | 是否重新布局。 |
2019-10-09 10:16:54 +08:00
#### widget\_animator\_set\_repeat 函数
2018-12-21 18:29:29 +08:00
-----------------------
2018-12-21 11:39:05 +08:00
* 函数功能:
2019-11-15 11:33:43 +08:00
> <p id="widget_animator_t_widget_animator_set_repeat">设置为重复模式。
2019-10-16 09:02:32 +08:00
2018-12-21 11:39:05 +08:00
* 函数原型:
```
2019-10-09 10:16:54 +08:00
ret_t widget_animator_set_repeat (widget_animator_t* animator, uint32_t repeat_times);
2018-12-21 11:39:05 +08:00
```
* 参数说明:
2018-12-20 17:33:31 +08:00
| 参数 | 类型 | 说明 |
| -------- | ----- | --------- |
| 返回值 | ret\_t | 返回RET\_OK表示成功否则表示失败。 |
2019-10-09 10:16:54 +08:00
| animator | widget\_animator\_t* | 动画对象。 |
| repeat\_times | uint32\_t | 重复的次数。 |
#### widget\_animator\_set\_reversed 函数
2018-12-21 18:29:29 +08:00
-----------------------
2018-12-21 11:39:05 +08:00
* 函数功能:
2019-11-15 11:33:43 +08:00
> <p id="widget_animator_t_widget_animator_set_reversed">设置为逆向模式。
2019-10-16 09:02:32 +08:00
2018-12-21 11:39:05 +08:00
* 函数原型:
```
2019-10-09 10:16:54 +08:00
ret_t widget_animator_set_reversed (widget_animator_t* animator, bool_t value);
2018-12-21 11:39:05 +08:00
```
* 参数说明:
2018-12-20 17:33:31 +08:00
| 参数 | 类型 | 说明 |
| -------- | ----- | --------- |
| 返回值 | ret\_t | 返回RET\_OK表示成功否则表示失败。 |
2019-10-09 10:16:54 +08:00
| animator | widget\_animator\_t* | 动画对象。 |
| value | bool\_t | 是否为逆向模式。 |
#### widget\_animator\_set\_time\_scale 函数
2018-12-21 18:29:29 +08:00
-----------------------
2018-12-21 11:39:05 +08:00
* 函数功能:
2019-11-15 11:33:43 +08:00
> <p id="widget_animator_t_widget_animator_set_time_scale">设置时间倍率,用于实现时间加速减速和停滞的功能。
2019-10-16 09:02:32 +08:00
2018-12-21 11:39:05 +08:00
* 函数原型:
```
2019-10-09 10:16:54 +08:00
ret_t widget_animator_set_time_scale (widget_animator_t* animator, float_t time_scale);
2018-12-21 11:39:05 +08:00
```
* 参数说明:
2018-12-20 17:33:31 +08:00
| 参数 | 类型 | 说明 |
| -------- | ----- | --------- |
| 返回值 | ret\_t | 返回RET\_OK表示成功否则表示失败。 |
2019-10-09 10:16:54 +08:00
| animator | widget\_animator\_t* | 动画对象。 |
2018-12-20 17:33:31 +08:00
| time\_scale | float\_t | 时间倍率。 |
2019-10-09 10:16:54 +08:00
#### widget\_animator\_set\_yoyo 函数
2018-12-21 18:29:29 +08:00
-----------------------
2018-12-21 11:39:05 +08:00
* 函数功能:
2019-11-15 11:33:43 +08:00
> <p id="widget_animator_t_widget_animator_set_yoyo">设置为yoyo模式。
2019-10-16 09:02:32 +08:00
2018-12-21 11:39:05 +08:00
* 函数原型:
```
2019-10-09 10:16:54 +08:00
ret_t widget_animator_set_yoyo (widget_animator_t* animator, uint32_t yoyo_times);
2018-12-21 11:39:05 +08:00
```
* 参数说明:
2018-12-20 17:33:31 +08:00
| 参数 | 类型 | 说明 |
| -------- | ----- | --------- |
| 返回值 | ret\_t | 返回RET\_OK表示成功否则表示失败。 |
2019-10-09 10:16:54 +08:00
| animator | widget\_animator\_t* | 动画对象。 |
| yoyo\_times | uint32\_t | yoyo的次数往返视为两次。 |
#### widget\_animator\_start 函数
2018-12-21 18:29:29 +08:00
-----------------------
2018-12-21 11:39:05 +08:00
* 函数功能:
2019-11-15 11:33:43 +08:00
> <p id="widget_animator_t_widget_animator_start">启动动画。
2019-10-16 09:02:32 +08:00
2018-12-21 11:39:05 +08:00
* 函数原型:
```
2019-10-09 10:16:54 +08:00
ret_t widget_animator_start (widget_animator_t* animator);
2018-12-21 11:39:05 +08:00
```
* 参数说明:
2018-12-20 17:33:31 +08:00
| 参数 | 类型 | 说明 |
| -------- | ----- | --------- |
| 返回值 | ret\_t | 返回RET\_OK表示成功否则表示失败。 |
2019-10-09 10:16:54 +08:00
| animator | widget\_animator\_t* | 动画对象。 |
#### widget\_animator\_stop 函数
2018-12-21 18:29:29 +08:00
-----------------------
2018-12-21 11:39:05 +08:00
* 函数功能:
2019-11-15 11:33:43 +08:00
> <p id="widget_animator_t_widget_animator_stop">停止动画。
2019-10-16 09:02:32 +08:00
2018-12-21 11:39:05 +08:00
* 函数原型:
```
2019-10-09 10:16:54 +08:00
ret_t widget_animator_stop (widget_animator_t* animator);
2018-12-21 11:39:05 +08:00
```
* 参数说明:
2018-12-20 17:33:31 +08:00
| 参数 | 类型 | 说明 |
| -------- | ----- | --------- |
| 返回值 | ret\_t | 返回RET\_OK表示成功否则表示失败。 |
2019-10-09 10:16:54 +08:00
| animator | widget\_animator\_t* | 动画对象。 |
#### name 属性
2018-12-20 17:33:31 +08:00
-----------------------
2019-11-15 11:33:43 +08:00
> <p id="widget_animator_t_name">名称。
2019-10-16 09:02:32 +08:00
2019-10-09 10:16:54 +08:00
* 类型char*
2018-12-20 17:33:31 +08:00