Я могу опоздать, чтобы ответить на этот вопрос, но для любого, кто ищет, эта ручка может дать вам несколько указателей: https://codepen.io/shkaper/pen/oEKEgG
Идея здесь, прежде всего, состоит в том, чтобы расширить fabric.Image класс, переопределяющий его внутренний метод рендеринга, для рендеринга содержимого произвольного холста, который вы сами предоставляете:
fabric.AEAnimation = fabric.util.createClass(fabric.Image, {
drawCacheOnCanvas: function(ctx) {
ctx.drawImage(this._AECanvas, -this.width / 2, -this.height / 2);
},
})
Вы можете сделать этот холст аргументом конструктора, например,
initialize: function (AECanvas, options) {
options = options || {}
this.callSuper('initialize', AECanvas, options)
this._AECanvas = AECanvas
},
Тогда вам просто нужно использовать средство рендеринга холста lottie, чтобы нарисовать анимацию на холсте и передать ее в новый объект fabric.AEAnimation.