just-animate
Version:
_Making Animation Simple_
25 lines (24 loc) • 756 B
JavaScript
import { loopOn } from '../core/timeloop';
import { S_PLAYING, _ } from '../utils/constants';
import { update } from './update';
import { PLAY } from '../actions';
export const play = (model, options, ctx) => {
if (options) {
model.repeat = options.repeat;
model.yoyo = !!options.alternate;
model.destroy = !!options.destroy;
}
model.repeat = model.repeat || 1;
model.yoyo = model.yoyo || false;
model.state = S_PLAYING;
const isForwards = model.rate >= 0;
if (isForwards && model.time === model.duration) {
model.time = 0;
}
else if (!isForwards && model.time === 0) {
model.time = model.duration;
}
loopOn(model.id);
update(model, _, ctx);
ctx.trigger(PLAY);
};