feat: existent::transition

This commit is contained in:
cha0s 2019-04-19 17:10:32 -05:00
parent d658dc45ed
commit 2d00328ebd
3 changed files with 20 additions and 2 deletions

View File

@ -1,4 +1,5 @@
import {compose} from '@avocado/core';
import {compose, TickingPromise} from '@avocado/core';
import {TransitionResult} from '@avocado/mixins';
import {StateProperty, Trait} from '../trait';
@ -29,6 +30,22 @@ class ExistentBase extends Trait {
this.entity.emit('destroyed');
},
transition: (props, duration, easing) => {
const result = new TransitionResult(
this.entity,
props,
duration,
easing
);
const promise = new TickingPromise((resolve) => {
resolve(result.promise);
});
promise.ticker = (elapsed) => {
result.tick(elapsed);
}
return promise;
},
};
}

View File

@ -1,4 +1,4 @@
export {EventEmitterMixin as EventEmitter} from './event-emitter';
export {LfoMixin as Lfo} from './lfo';
export {PropertyMixin as Property} from './property';
export {TransitionMixin as Transition} from './transition';
export {TransitionMixin as Transition, TransitionResult} from './transition';

View File

@ -28,6 +28,7 @@
// compatible.
import TransitionResult from './result';
export {TransitionResult};
export function TransitionMixin(Superclass) {
return class Transition extends Superclass {