1 | var clone = require("./clone");
|
2 |
|
3 | module.exports = function splitFilmStripAnimations(animations) {
|
4 | Object.keys(animations).forEach(function(key) {
|
5 | var firstFrame = animations[key][0];
|
6 | if (firstFrame.filmstripFrames) {
|
7 | splitFilmStripAnimation(animations, key);
|
8 | }
|
9 | });
|
10 | };
|
11 |
|
12 | function splitFilmStripAnimation(animations, key) {
|
13 | var firstFrame = animations[key][0];
|
14 | if (firstFrame.properties.image.sourceWidth % firstFrame.filmstripFrames != 0) {
|
15 | console.warn("The \"" + key + "\" animation is " + firstFrame.properties.image.sourceWidth + " pixels wide and that is is not evenly divisible by " + firstFrame.filmstripFrames + " frames.");
|
16 | }
|
17 | for (var i = 0; i < firstFrame.filmstripFrames; i++) {
|
18 | var frameWidth = firstFrame.properties.image.sourceWidth / firstFrame.filmstripFrames;
|
19 | var newFrame = clone(firstFrame);
|
20 | newFrame.properties.image.sourceX = frameWidth * i;
|
21 | newFrame.properties.image.sourceWidth = frameWidth;
|
22 | animations[key].push(newFrame);
|
23 | }
|
24 | animations[key].splice(0,1);
|
25 | }
|