Skip to content

Commit d787bfb

Browse files
committed
Added Animation.addFrame and addFrameAt including sequence updating.
1 parent 1bfec64 commit d787bfb

2 files changed

Lines changed: 60 additions & 1 deletion

File tree

v3/src/animation/frame/Animation.js

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,65 @@ Animation.prototype = {
137137
this.paused = false;
138138
},
139139

140+
addFrame: function (config)
141+
{
142+
return this.addFrameAt(0, config);
143+
},
144+
145+
addFrameAt: function (index, config)
146+
{
147+
if (index === undefined) { index = 0; }
148+
149+
var newFrames = GetFrames(this.manager.textureManager, config);
150+
151+
if (newFrames.length > 0)
152+
{
153+
var pre = this.frames.slice(0, index);
154+
var post = this.frames.slice(index);
155+
156+
this.frames = pre.concat(newFrames, post);
157+
}
158+
159+
return this.updateFrameSequence();
160+
},
161+
162+
updateFrameSequence: function ()
163+
{
164+
var len = this.frames.length;
165+
var slice = 1 / (len - 1);
166+
167+
for (var i = 0; i < len; i++)
168+
{
169+
var frame = this.frames[i];
170+
171+
frame.index = i + 1;
172+
frame.isFirst = false;
173+
frame.isLast = false;
174+
frame.progress = i * slice;
175+
176+
if (i === 0)
177+
{
178+
frame.isFirst = true;
179+
frame.isLast = (len === 1);
180+
frame.prevFrame = this.frames[len - 1];
181+
frame.nextFrame = this.frames[i + 1];
182+
}
183+
else if (i === len - 1)
184+
{
185+
frame.isLast = true;
186+
frame.prevFrame = this.frames[len - 2];
187+
frame.nextFrame = this.frames[0];
188+
}
189+
else if (len > 1)
190+
{
191+
frame.prevFrame = this.frames[i - 1];
192+
frame.nextFrame = this.frames[i + 1];
193+
}
194+
}
195+
196+
return this;
197+
},
198+
140199
checkFrame: function (index)
141200
{
142201
return (index < this.frames.length);

v3/src/checksum.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
var CHECKSUM = {
2-
build: 'b62a75c0-2f4e-11e7-bf40-cda08d192aff'
2+
build: 'e8ec59b0-2f67-11e7-8a6d-15f444d89077'
33
};
44
module.exports = CHECKSUM;

0 commit comments

Comments
 (0)