feat: existent::transition
This commit is contained in:
parent
d658dc45ed
commit
2d00328ebd
|
@ -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';
|
import {StateProperty, Trait} from '../trait';
|
||||||
|
|
||||||
|
@ -29,6 +30,22 @@ class ExistentBase extends Trait {
|
||||||
this.entity.emit('destroyed');
|
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;
|
||||||
|
},
|
||||||
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
export {EventEmitterMixin as EventEmitter} from './event-emitter';
|
export {EventEmitterMixin as EventEmitter} from './event-emitter';
|
||||||
export {LfoMixin as Lfo} from './lfo';
|
export {LfoMixin as Lfo} from './lfo';
|
||||||
export {PropertyMixin as Property} from './property';
|
export {PropertyMixin as Property} from './property';
|
||||||
export {TransitionMixin as Transition} from './transition';
|
export {TransitionMixin as Transition, TransitionResult} from './transition';
|
||||||
|
|
|
@ -28,6 +28,7 @@
|
||||||
// compatible.
|
// compatible.
|
||||||
|
|
||||||
import TransitionResult from './result';
|
import TransitionResult from './result';
|
||||||
|
export {TransitionResult};
|
||||||
|
|
||||||
export function TransitionMixin(Superclass) {
|
export function TransitionMixin(Superclass) {
|
||||||
return class Transition extends Superclass {
|
return class Transition extends Superclass {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user