Moved the padding code to a new StringUtils.js utility and made the export code use it

This commit is contained in:
Matt D 2016-03-23 21:32:22 +11:00
parent e2b6f0776b
commit da105e6237
3 changed files with 16 additions and 8 deletions

View File

@ -59,31 +59,28 @@
ns.PngExportController.prototype.mergedExport_ = function (zip) {
var paddingLength = (""+this.piskelController.getFrameCount()).length;
var padding = new Array(paddingLength).join("0");
for (var i = 0; i < this.piskelController.getFrameCount(); i++) {
var frame = this.piskelController.getFrameAt(i);
var canvas = this.getFrameAsCanvas_(frame);
var basename = this.pngFilePrefixInput.value;
var id = (padding + (i + 1)).slice(-paddingLength);
var id = pskl.utils.StringUtils.leftPad(i, paddingLength, "0");
var filename = basename + id + '.png';
zip.file(filename, pskl.utils.CanvasUtils.getBase64FromCanvas(canvas) + '\n', {base64: true});
}
};
ns.PngExportController.prototype.splittedExport_ = function (zip) {
var framePaddingLength = (""+this.piskelController.getFrameCount()).length;
var framePadding = new Array(framePaddingLength).join("0");
var layers = this.piskelController.getLayers();
var framePaddingLength = (""+this.piskelController.getFrameCount()).length;
var layerPaddingLength = (""+layers.length).length;
var layerPadding = new Array(layerPaddingLength).join("0");
for (var j = 0; this.piskelController.hasLayerAt(j); j++) {
var layer = this.piskelController.getLayerAt(j);
var layerid = (layerPadding + j).slice(-layerPaddingLength);
var layerid = pskl.utils.StringUtils.leftPad(j, layerPaddingLength, "0");
for (var i = 0; i < this.piskelController.getFrameCount(); i++) {
var frame = layer.getFrameAt(i);
var canvas = this.getFrameAsCanvas_(frame);
var basename = this.pngFilePrefixInput.value;
var frameid = (framePadding + (i + 1)).slice(-framePaddingLength);
var frameid = pskl.utils.StringUtils.leftPad(i + 1, framePaddingLength, "0");
var filename = 'l' + layerid + '_' + basename + frameid + '.png';
zip.file(filename, pskl.utils.CanvasUtils.getBase64FromCanvas(canvas) + '\n', {base64: true});
}

View File

@ -0,0 +1,10 @@
(function () {
var ns = $.namespace('pskl.utils');
ns.StringUtils = {
leftPad : function (input, length, pad) {
var padding = new Array(length).join(pad);
return (padding + input).slice(-length);
},
}
})();

View File

@ -32,6 +32,7 @@
"js/utils/LayerUtils.js",
"js/utils/PixelUtils.js",
"js/utils/PiskelFileUtils.js",
"js/utils/StringUtils.js",
"js/utils/Template.js",
"js/utils/TooltipFormatter.js",
"js/utils/UserSettings.js",
@ -227,4 +228,4 @@
// Bonus features !!
"js/snippets.js"
];
];