# image-animator 2+
图片帧动画播放器。
# 属性
支持通用属性还支持如下属性:
名称 | 类型 | 默认值 | 必填 | 描述 |
---|---|---|---|---|
images | Array<ImageFrame> | - | 是 | 设置图片帧信息集合。每一帧的帧信息包含图片路径、图片大小和图片位置信息。目前支持的图片格式为 png。 |
iteration | number | string | infinite | 否 | 设置帧动画播放次数。number 表示固定次数,infinite 枚举表示无限次数播放。 |
reverse | boolean | false | 否 | 设置播放顺序。false 表示从第 1 张图片播放到最后 1 张图片; true 表示从最后 1 张图片播放到第 1 张图片。 |
fixedsize | boolean | true | 否 | 设置图片大小是否固定为组件大小。true 表示图片大小与组件大小一致,此时设置图片的 width 、height 、top 和 left 属性是无效的。false 表示每一张图片的独设置。 |
duration | String | - | 是 | 每一帧图片的播放时长,单位支持[s(秒)或者 ms(毫秒)],默认单位为 ms。示例:'1000ms' |
fillmode | String | forwards | 否 | 指定帧动画执行结束后的状态。可选项有:none:恢复初始状态。forwards:保持帧动画结束时的状态 |
poster | String | first | 否 | 设置帧动画不执行时的展示。可选项有:first:展示第一帧图片;last:展示最后一帧图片 |
ImageFrame 说明
名称 | 类型 | 默认值 | 必填 | 描述 |
---|---|---|---|---|
src | <uri> | - | 是 | 图片路径,图片格式为 png。 |
width | <length> | 0 | 否 | 图片宽度。示例:'100px' |
height | <length> | 0 | 否 | 图片高度。 示例:'100px' |
top | <length> | 0 | 否 | 图片相对于组件左上角的纵向坐标。示例:'100px' |
left | <length> | 0 | 否 | 图片相对于组件左上角的横向坐标。 示例:'100px' |
duration | Number | - | 否 | 每一帧图片的播放时长,单位毫秒。示例:100 |
# 样式
支持通用样式
# 支持如下方法
名称 | 参数 | 描述 |
---|---|---|
start | - | 开始播放图片帧动画。再次调用,重新从第 1 帧开始播放。 |
pause | - | 暂停播放图片帧动画。 |
stop | - | 停止播放图片帧动画。 |
resume | - | 继续播放图片帧。 |
getState | - | 获取播放状态。playing:播放中。paused:已暂停 stopped:已停止。 |
# 示例
<template>
<div class="container">
<image-animator class="animator" id="animator" images="{{frames}}" />
<div class="btn-box">
<input class="btn" type="button" value="start" onclick="handleStart" />
<input class="btn" type="button" value="stop" onclick="handleStop" />
<input class="btn" type="button" value="pause" onclick="handlePause" />
<input class="btn" type="button" value="resume" onclick="handleResume" />
</div>
</div>
</template>
<script>
export default {
data: {
frames: [
{
src: '/common/asserts/heart78.png',
},
{
src: '/common/asserts/heart79.png',
},
],
},
onReady() {
let state = this.$element('animator').getState()
switch (state) {
case 'playing':
//实现具体的业务逻辑
break
case 'paused':
//实现具体的业务逻辑
break
case 'stopped':
//实现具体的业务逻辑
break
}
},
handleStart() {
this.$element('animator').start()
},
handlePause() {
this.$element('animator').pause()
},
handleResume() {
this.$element('animator').resume()
},
handleStop() {
this.$element('animator').stop()
},
}
</script>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
image-animator组件
图片帧动画播放器。
基础用法
```html
{{ componentName }}
调用方法:
对第1~10张图片的单独设置:
{{ JSON.stringify(setInfo) }}
播放状态:{{ state }}
iteration--->{{ iteration }}
duration--->{{ duration }}
fillmode--->{{ fillmode }}
reverse--->{{ reverse }}
fixedsize--->{{ fixedsize }}
transition-timing-function--->
{{ currentTransitionTiming }}
```
复制代码
设计尺寸:750X750
←
→