Skip to content

Commit 8b2c9ed

Browse files
committed
GenerateFrameNames can now accept the start and end parameters in reverse order, meaning you can now do { start: 10, end: 1 } to create the animation in reverse.
1 parent b99ee24 commit 8b2c9ed

1 file changed

Lines changed: 16 additions & 35 deletions

File tree

src/animations/AnimationManager.js

Lines changed: 16 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -639,46 +639,28 @@ var AnimationManager = new Class({
639639
return out;
640640
}
641641

642-
var diff = (start < end) ? 1 : -1;
643-
644-
// Adjust because we use i !== end in the for loop
645-
end += diff;
646-
647642
var i;
648-
var frame;
649643

650644
if (!config)
651645
{
652-
// Use every frame in the atlas?
646+
// Use every frame in the atlas
653647
frames = texture.getFrameNames();
654648

655649
for (i = 0; i < frames.length; i++)
656650
{
657651
out.push({ key: key, frame: frames[i] });
658652
}
659653
}
660-
else if (Array.isArray(frames))
654+
else
661655
{
662-
// Have they provided their own custom frame sequence array?
663-
for (i = 0; i < frames.length; i++)
656+
if (!frames)
664657
{
665-
frame = prefix + Pad(frames[i], zeroPad, '0', 1) + suffix;
666-
667-
if (texture.has(frame))
668-
{
669-
out.push({ key: key, frame: frame });
670-
}
671-
else
672-
{
673-
console.warn('generateFrameNames: Frame missing: ' + frame + ' from texture: ' + key);
674-
}
658+
frames = NumberArray(start, end);
675659
}
676-
}
677-
else
678-
{
679-
for (i = start; i !== end; i += diff)
660+
661+
for (i = 0; i < frames.length; i++)
680662
{
681-
frame = prefix + Pad(i, zeroPad, '0', 1) + suffix;
663+
var frame = prefix + Pad(frames[i], zeroPad, '0', 1) + suffix;
682664

683665
if (texture.has(frame))
684666
{
@@ -711,9 +693,9 @@ var AnimationManager = new Class({
711693
*/
712694
generateFrameNumbers: function (key, config)
713695
{
714-
var startFrame = GetValue(config, 'start', 0);
715-
var endFrame = GetValue(config, 'end', -1);
716-
var firstFrame = GetValue(config, 'first', false);
696+
var start = GetValue(config, 'start', 0);
697+
var end = GetValue(config, 'end', -1);
698+
var first = GetValue(config, 'first', false);
717699
var out = GetValue(config, 'outputArray', []);
718700
var frames = GetValue(config, 'frames', false);
719701

@@ -724,23 +706,22 @@ var AnimationManager = new Class({
724706
return out;
725707
}
726708

727-
if (firstFrame && texture.has(firstFrame))
709+
if (first && texture.has(first))
728710
{
729-
out.push({ key: key, frame: firstFrame });
711+
out.push({ key: key, frame: first });
730712
}
731713

732-
// No 'frames' array? Then calculate one automatically
733-
714+
// No 'frames' array? Then generate one automatically
734715
if (!frames)
735716
{
736-
if (endFrame === -1)
717+
if (end === -1)
737718
{
738719
// -1 because of __BASE, which we don't want in our results
739720
// and -1 because frames are zero based
740-
endFrame = texture.frameTotal - 2;
721+
end = texture.frameTotal - 2;
741722
}
742723

743-
frames = NumberArray(startFrame, endFrame);
724+
frames = NumberArray(start, end);
744725
}
745726

746727
for (var i = 0; i < frames.length; i++)

0 commit comments

Comments
 (0)