Skip to content

Commit

Permalink
added destroy method
Browse files Browse the repository at this point in the history
  • Loading branch information
bodymovin committed Nov 7, 2021
1 parent f9b1e5b commit 4f2683d
Showing 1 changed file with 33 additions and 14 deletions.
47 changes: 33 additions & 14 deletions player/js/module_worker.js
Original file line number Diff line number Diff line change
Expand Up @@ -306,6 +306,11 @@ function workerContent() {
if (animations[payload.id]) {
animations[payload.id].setSubframe(payload.value);
}
} else if (type === 'destroy') {
if (animations[payload.id]) {
animations[payload.id].destroy();
animations[payload.id] = null;
}
}
};
}
Expand Down Expand Up @@ -399,19 +404,21 @@ var lottie = (function () {
function handleAnimationUpdate(payload) {
var changedElements = payload.elements;
var animation = animations[payload.id];
var elements = animation.elements;
var elementData;
for (var i = 0; i < changedElements.length; i += 1) {
elementData = changedElements[i];
var element = elements[elementData.id];
addNewElements(elementData.elements, elements);
updateElementStyles(element, elementData.styles);
updateElementAttributes(element, elementData.attributes);
if (animation) {
var elements = animation.elements;
var elementData;
for (var i = 0; i < changedElements.length; i += 1) {
elementData = changedElements[i];
var element = elements[elementData.id];
addNewElements(elementData.elements, elements);
updateElementStyles(element, elementData.styles);
updateElementAttributes(element, elementData.attributes);
}
animation.animInstance.currentTime = payload.currentTime;
}
animation.animInstance.currentTime = payload.currentTime;
}

workerInstance.onmessage = function(event) {
workerInstance.onmessage = function (event) {
if (event.data.type === 'loaded') {
handleAnimationLoaded(event.data.payload);
} else if (event.data.type === 'updated') {
Expand Down Expand Up @@ -444,6 +451,9 @@ var lottie = (function () {
function loadAnimation(params) {
animationIdCounter += 1;
var animationId = 'lottie_animationId_' + animationIdCounter;
var animation = {
elements: {},
};
var animInstance = {
id: animationId,
pause: function () {
Expand Down Expand Up @@ -509,13 +519,22 @@ var lottie = (function () {
},
});
},
destroy: function () {
animations[animationId] = null;
if (animation.container) {
animation.container.innerHTML = '';
}
workerInstance.postMessage({
type: 'destroy',
payload: {
id: animationId,
},
});
},
};
animation.animInstance = animInstance;
resolveAnimationData(params)
.then(function (animationParams) {
var animation = {
elements: {},
animInstance: animInstance,
};
if (animationParams.container) {
animation.container = animationParams.container;
delete animationParams.container;
Expand Down

0 comments on commit 4f2683d

Please sign in to comment.