Files
tower/js/sequence_tile.js

45 lines
1.5 KiB
JavaScript
Raw Normal View History

2021-05-13 04:09:46 +00:00
import { AnimatableTile } from './animatable_tile.js';
export class SequenceTile extends AnimatableTile {
constructor(width, height, animations, tiles, delay, repeat) {
super(width, height, animations);
2021-05-12 04:48:16 +00:00
this.elem.style.position = 'relative';
const tile_chunk = 1 / tiles.length;
let animation = null;
for (let i = 0; i < tiles.length; i++) {
const tile = tiles[i];
this.elem.appendChild(tile.elem);
tile.elem.style.width = '100%';
tile.elem.style.height = '100%';
tile.elem.style.position = 'absolute';
tile.elem.style.top = '0';
tile.elem.style.left = '0';
tile.elem.style.visibility = 'hidden';
2021-05-12 04:48:16 +00:00
animation = tile.elem.animate([
{
'offset': 0,
'easing': 'step-end',
'visibility': 'hidden',
2021-05-12 04:48:16 +00:00
},
{
'offset': i * tile_chunk,
'easing': 'step-end',
'visibility': 'visible',
2021-05-12 04:48:16 +00:00
},
{
'offset': (i + 1) * tile_chunk,
'visibility': 'hidden',
},
2021-05-12 04:48:16 +00:00
], {
'duration': tiles.length * delay,
2021-05-12 04:48:16 +00:00
'iterations': repeat ? Infinity : 1,
});
}
if (!repeat) {
animation.finished.then(() => this.elem.remove());
}
}
play(_) {
return undefined;
}
}
//# sourceMappingURL=sequence_tile.js.map