diff --git a/AnimatedSpriteGenerator.as b/AnimatedSpriteGenerator.as index 34b0217..f5d26ca 100755 --- a/AnimatedSpriteGenerator.as +++ b/AnimatedSpriteGenerator.as @@ -29,7 +29,7 @@ frames: s.map( function(f:AnimatedSpriteFrame, i, fArr) { - return {rect:f.info.rect, center:f.offset}; + return {rect:f.info.rect, center:f.offset, scale:def.scale}; } ) }; @@ -58,6 +58,7 @@ if (c is MovieClip) { sequences.push(GetAnimation(c, i)); + break; } } } @@ -74,11 +75,12 @@ Utils.RecursivelyStop(m); var bounds:Rectangle = Utils.GetAccurateBounds(m, new Matrix(def.scale, 0, 0, def.scale)); + var frameBounds:Rectangle = new Rectangle(def.padding, def.padding, bounds.width, bounds.height); var drawMatrix:Matrix = new Matrix(def.scale, 0, 0, def.scale, -bounds.left + def.padding, -bounds.top + def.padding); var b:BitmapData = new BitmapData(bounds.width + def.padding * 2, bounds.height + def.padding * 2, true, 0x0); - b.drawWithQuality(m, drawMatrix, null, null, bounds, false, StageQuality.BEST); + b.drawWithQuality(m, drawMatrix, null, null, frameBounds, false, StageQuality.BEST); var info:FrameInfo = new FrameInfo(b, drawMatrix, bounds); diff --git a/AnimatedSpriteGenerator.as b/AnimatedSpriteGenerator.as index 34b0217..f5d26ca 100755 --- a/AnimatedSpriteGenerator.as +++ b/AnimatedSpriteGenerator.as @@ -29,7 +29,7 @@ frames: s.map( function(f:AnimatedSpriteFrame, i, fArr) { - return {rect:f.info.rect, center:f.offset}; + return {rect:f.info.rect, center:f.offset, scale:def.scale}; } ) }; @@ -58,6 +58,7 @@ if (c is MovieClip) { sequences.push(GetAnimation(c, i)); + break; } } } @@ -74,11 +75,12 @@ Utils.RecursivelyStop(m); var bounds:Rectangle = Utils.GetAccurateBounds(m, new Matrix(def.scale, 0, 0, def.scale)); + var frameBounds:Rectangle = new Rectangle(def.padding, def.padding, bounds.width, bounds.height); var drawMatrix:Matrix = new Matrix(def.scale, 0, 0, def.scale, -bounds.left + def.padding, -bounds.top + def.padding); var b:BitmapData = new BitmapData(bounds.width + def.padding * 2, bounds.height + def.padding * 2, true, 0x0); - b.drawWithQuality(m, drawMatrix, null, null, bounds, false, StageQuality.BEST); + b.drawWithQuality(m, drawMatrix, null, null, frameBounds, false, StageQuality.BEST); var info:FrameInfo = new FrameInfo(b, drawMatrix, bounds); diff --git a/DebugExporter.swf b/DebugExporter.swf index 8663ca9..b19375a 100755 --- a/DebugExporter.swf +++ b/DebugExporter.swf Binary files differ diff --git a/AnimatedSpriteGenerator.as b/AnimatedSpriteGenerator.as index 34b0217..f5d26ca 100755 --- a/AnimatedSpriteGenerator.as +++ b/AnimatedSpriteGenerator.as @@ -29,7 +29,7 @@ frames: s.map( function(f:AnimatedSpriteFrame, i, fArr) { - return {rect:f.info.rect, center:f.offset}; + return {rect:f.info.rect, center:f.offset, scale:def.scale}; } ) }; @@ -58,6 +58,7 @@ if (c is MovieClip) { sequences.push(GetAnimation(c, i)); + break; } } } @@ -74,11 +75,12 @@ Utils.RecursivelyStop(m); var bounds:Rectangle = Utils.GetAccurateBounds(m, new Matrix(def.scale, 0, 0, def.scale)); + var frameBounds:Rectangle = new Rectangle(def.padding, def.padding, bounds.width, bounds.height); var drawMatrix:Matrix = new Matrix(def.scale, 0, 0, def.scale, -bounds.left + def.padding, -bounds.top + def.padding); var b:BitmapData = new BitmapData(bounds.width + def.padding * 2, bounds.height + def.padding * 2, true, 0x0); - b.drawWithQuality(m, drawMatrix, null, null, bounds, false, StageQuality.BEST); + b.drawWithQuality(m, drawMatrix, null, null, frameBounds, false, StageQuality.BEST); var info:FrameInfo = new FrameInfo(b, drawMatrix, bounds); diff --git a/DebugExporter.swf b/DebugExporter.swf index 8663ca9..b19375a 100755 --- a/DebugExporter.swf +++ b/DebugExporter.swf Binary files differ diff --git a/Exporter.as b/Exporter.as index 12ed4a7..0b29136 100644 --- a/Exporter.as +++ b/Exporter.as @@ -247,7 +247,6 @@ } } var str:String = JSON.stringify(obj); - Trace("Sending: " + str.length); DriverSend(str); } diff --git a/AnimatedSpriteGenerator.as b/AnimatedSpriteGenerator.as index 34b0217..f5d26ca 100755 --- a/AnimatedSpriteGenerator.as +++ b/AnimatedSpriteGenerator.as @@ -29,7 +29,7 @@ frames: s.map( function(f:AnimatedSpriteFrame, i, fArr) { - return {rect:f.info.rect, center:f.offset}; + return {rect:f.info.rect, center:f.offset, scale:def.scale}; } ) }; @@ -58,6 +58,7 @@ if (c is MovieClip) { sequences.push(GetAnimation(c, i)); + break; } } } @@ -74,11 +75,12 @@ Utils.RecursivelyStop(m); var bounds:Rectangle = Utils.GetAccurateBounds(m, new Matrix(def.scale, 0, 0, def.scale)); + var frameBounds:Rectangle = new Rectangle(def.padding, def.padding, bounds.width, bounds.height); var drawMatrix:Matrix = new Matrix(def.scale, 0, 0, def.scale, -bounds.left + def.padding, -bounds.top + def.padding); var b:BitmapData = new BitmapData(bounds.width + def.padding * 2, bounds.height + def.padding * 2, true, 0x0); - b.drawWithQuality(m, drawMatrix, null, null, bounds, false, StageQuality.BEST); + b.drawWithQuality(m, drawMatrix, null, null, frameBounds, false, StageQuality.BEST); var info:FrameInfo = new FrameInfo(b, drawMatrix, bounds); diff --git a/DebugExporter.swf b/DebugExporter.swf index 8663ca9..b19375a 100755 --- a/DebugExporter.swf +++ b/DebugExporter.swf Binary files differ diff --git a/Exporter.as b/Exporter.as index 12ed4a7..0b29136 100644 --- a/Exporter.as +++ b/Exporter.as @@ -247,7 +247,6 @@ } } var str:String = JSON.stringify(obj); - Trace("Sending: " + str.length); DriverSend(str); } diff --git a/Exporter.exe b/Exporter.exe index edc8614..22dabab 100755 --- a/Exporter.exe +++ b/Exporter.exe Binary files differ diff --git a/AnimatedSpriteGenerator.as b/AnimatedSpriteGenerator.as index 34b0217..f5d26ca 100755 --- a/AnimatedSpriteGenerator.as +++ b/AnimatedSpriteGenerator.as @@ -29,7 +29,7 @@ frames: s.map( function(f:AnimatedSpriteFrame, i, fArr) { - return {rect:f.info.rect, center:f.offset}; + return {rect:f.info.rect, center:f.offset, scale:def.scale}; } ) }; @@ -58,6 +58,7 @@ if (c is MovieClip) { sequences.push(GetAnimation(c, i)); + break; } } } @@ -74,11 +75,12 @@ Utils.RecursivelyStop(m); var bounds:Rectangle = Utils.GetAccurateBounds(m, new Matrix(def.scale, 0, 0, def.scale)); + var frameBounds:Rectangle = new Rectangle(def.padding, def.padding, bounds.width, bounds.height); var drawMatrix:Matrix = new Matrix(def.scale, 0, 0, def.scale, -bounds.left + def.padding, -bounds.top + def.padding); var b:BitmapData = new BitmapData(bounds.width + def.padding * 2, bounds.height + def.padding * 2, true, 0x0); - b.drawWithQuality(m, drawMatrix, null, null, bounds, false, StageQuality.BEST); + b.drawWithQuality(m, drawMatrix, null, null, frameBounds, false, StageQuality.BEST); var info:FrameInfo = new FrameInfo(b, drawMatrix, bounds); diff --git a/DebugExporter.swf b/DebugExporter.swf index 8663ca9..b19375a 100755 --- a/DebugExporter.swf +++ b/DebugExporter.swf Binary files differ diff --git a/Exporter.as b/Exporter.as index 12ed4a7..0b29136 100644 --- a/Exporter.as +++ b/Exporter.as @@ -247,7 +247,6 @@ } } var str:String = JSON.stringify(obj); - Trace("Sending: " + str.length); DriverSend(str); } diff --git a/Exporter.exe b/Exporter.exe index edc8614..22dabab 100755 --- a/Exporter.exe +++ b/Exporter.exe Binary files differ diff --git a/Exporter.swf b/Exporter.swf index ac37031..3deab40 100644 --- a/Exporter.swf +++ b/Exporter.swf Binary files differ diff --git a/AnimatedSpriteGenerator.as b/AnimatedSpriteGenerator.as index 34b0217..f5d26ca 100755 --- a/AnimatedSpriteGenerator.as +++ b/AnimatedSpriteGenerator.as @@ -29,7 +29,7 @@ frames: s.map( function(f:AnimatedSpriteFrame, i, fArr) { - return {rect:f.info.rect, center:f.offset}; + return {rect:f.info.rect, center:f.offset, scale:def.scale}; } ) }; @@ -58,6 +58,7 @@ if (c is MovieClip) { sequences.push(GetAnimation(c, i)); + break; } } } @@ -74,11 +75,12 @@ Utils.RecursivelyStop(m); var bounds:Rectangle = Utils.GetAccurateBounds(m, new Matrix(def.scale, 0, 0, def.scale)); + var frameBounds:Rectangle = new Rectangle(def.padding, def.padding, bounds.width, bounds.height); var drawMatrix:Matrix = new Matrix(def.scale, 0, 0, def.scale, -bounds.left + def.padding, -bounds.top + def.padding); var b:BitmapData = new BitmapData(bounds.width + def.padding * 2, bounds.height + def.padding * 2, true, 0x0); - b.drawWithQuality(m, drawMatrix, null, null, bounds, false, StageQuality.BEST); + b.drawWithQuality(m, drawMatrix, null, null, frameBounds, false, StageQuality.BEST); var info:FrameInfo = new FrameInfo(b, drawMatrix, bounds); diff --git a/DebugExporter.swf b/DebugExporter.swf index 8663ca9..b19375a 100755 --- a/DebugExporter.swf +++ b/DebugExporter.swf Binary files differ diff --git a/Exporter.as b/Exporter.as index 12ed4a7..0b29136 100644 --- a/Exporter.as +++ b/Exporter.as @@ -247,7 +247,6 @@ } } var str:String = JSON.stringify(obj); - Trace("Sending: " + str.length); DriverSend(str); } diff --git a/Exporter.exe b/Exporter.exe index edc8614..22dabab 100755 --- a/Exporter.exe +++ b/Exporter.exe Binary files differ diff --git a/Exporter.swf b/Exporter.swf index ac37031..3deab40 100644 --- a/Exporter.swf +++ b/Exporter.swf Binary files differ diff --git a/FramePacker.as b/FramePacker.as index 0e5e8a9..1a987f3 100755 --- a/FramePacker.as +++ b/FramePacker.as @@ -16,6 +16,7 @@ public function FramePacker(frames:Array) { this.frames = frames.filter(function(i:FrameInfo, index, arr) { return i.frame != null; }, this); + this.frames.sortOn("frame", Array.DESCENDING, function(a:BitmapData, b:BitmapData) { return (a.width * a.height) - (b.width - b.height); }); } private function GetMaxSize(frames:Array):Point @@ -69,11 +70,12 @@ { nodes.length = 0; var sheet:RectanglePacker = new RectanglePacker(sizeX, sizeY); - var sorted:Array = now.sortOn("frame", Array.RETURNINDEXEDARRAY | Array.DESCENDING, function(a:BitmapData, b:BitmapData) { return (a.width * a.height) - (b.width - b.height); }); + //var sorted:Array = now.sortOn("frame", Array.RETURNINDEXEDARRAY | Array.DESCENDING, function(a:BitmapData, b:BitmapData) { return (a.width * a.height) - (b.width - b.height); }); - for (var sortedI = 0; sortedI < now.length; sortedI++) + //for (var sortedI = 0; sortedI < now.length; sortedI++) + for (i = 0; i < now.length; i++) { - i = sorted[sortedI]; + //i = sorted[sortedI]; var node:RectangleNode = sheet.Insert(now[i].frame.width, now[i].frame.height); if (node == null) { diff --git a/AnimatedSpriteGenerator.as b/AnimatedSpriteGenerator.as index 34b0217..f5d26ca 100755 --- a/AnimatedSpriteGenerator.as +++ b/AnimatedSpriteGenerator.as @@ -29,7 +29,7 @@ frames: s.map( function(f:AnimatedSpriteFrame, i, fArr) { - return {rect:f.info.rect, center:f.offset}; + return {rect:f.info.rect, center:f.offset, scale:def.scale}; } ) }; @@ -58,6 +58,7 @@ if (c is MovieClip) { sequences.push(GetAnimation(c, i)); + break; } } } @@ -74,11 +75,12 @@ Utils.RecursivelyStop(m); var bounds:Rectangle = Utils.GetAccurateBounds(m, new Matrix(def.scale, 0, 0, def.scale)); + var frameBounds:Rectangle = new Rectangle(def.padding, def.padding, bounds.width, bounds.height); var drawMatrix:Matrix = new Matrix(def.scale, 0, 0, def.scale, -bounds.left + def.padding, -bounds.top + def.padding); var b:BitmapData = new BitmapData(bounds.width + def.padding * 2, bounds.height + def.padding * 2, true, 0x0); - b.drawWithQuality(m, drawMatrix, null, null, bounds, false, StageQuality.BEST); + b.drawWithQuality(m, drawMatrix, null, null, frameBounds, false, StageQuality.BEST); var info:FrameInfo = new FrameInfo(b, drawMatrix, bounds); diff --git a/DebugExporter.swf b/DebugExporter.swf index 8663ca9..b19375a 100755 --- a/DebugExporter.swf +++ b/DebugExporter.swf Binary files differ diff --git a/Exporter.as b/Exporter.as index 12ed4a7..0b29136 100644 --- a/Exporter.as +++ b/Exporter.as @@ -247,7 +247,6 @@ } } var str:String = JSON.stringify(obj); - Trace("Sending: " + str.length); DriverSend(str); } diff --git a/Exporter.exe b/Exporter.exe index edc8614..22dabab 100755 --- a/Exporter.exe +++ b/Exporter.exe Binary files differ diff --git a/Exporter.swf b/Exporter.swf index ac37031..3deab40 100644 --- a/Exporter.swf +++ b/Exporter.swf Binary files differ diff --git a/FramePacker.as b/FramePacker.as index 0e5e8a9..1a987f3 100755 --- a/FramePacker.as +++ b/FramePacker.as @@ -16,6 +16,7 @@ public function FramePacker(frames:Array) { this.frames = frames.filter(function(i:FrameInfo, index, arr) { return i.frame != null; }, this); + this.frames.sortOn("frame", Array.DESCENDING, function(a:BitmapData, b:BitmapData) { return (a.width * a.height) - (b.width - b.height); }); } private function GetMaxSize(frames:Array):Point @@ -69,11 +70,12 @@ { nodes.length = 0; var sheet:RectanglePacker = new RectanglePacker(sizeX, sizeY); - var sorted:Array = now.sortOn("frame", Array.RETURNINDEXEDARRAY | Array.DESCENDING, function(a:BitmapData, b:BitmapData) { return (a.width * a.height) - (b.width - b.height); }); + //var sorted:Array = now.sortOn("frame", Array.RETURNINDEXEDARRAY | Array.DESCENDING, function(a:BitmapData, b:BitmapData) { return (a.width * a.height) - (b.width - b.height); }); - for (var sortedI = 0; sortedI < now.length; sortedI++) + //for (var sortedI = 0; sortedI < now.length; sortedI++) + for (i = 0; i < now.length; i++) { - i = sorted[sortedI]; + //i = sorted[sortedI]; var node:RectangleNode = sheet.Insert(now[i].frame.width, now[i].frame.height); if (node == null) { diff --git a/Job.as b/Job.as index 1cd632c..c8d76f5 100755 --- a/Job.as +++ b/Job.as @@ -72,7 +72,7 @@ private var packer:FramePacker; private function Pack() { - var allFrames:Array = new Array(); + allFrames = new Array(); for (var i in graphics) { if (graphics[i].valid) @@ -96,6 +96,7 @@ } var i; + var sheet:BitmapData; sheets = new Array(); sheetBytes = new Array(); @@ -103,14 +104,14 @@ for (i in sheetAllocators) { var allocator:RectanglePacker = sheetAllocators[i]; - var sheet:BitmapData = new BitmapData(allocator.width, allocator.height, true, 0x0); + sheet = new BitmapData(allocator.width, allocator.height, true, 0x0); sheets.push(sheet); } for (i in allFrames) { var frame:FrameInfo = allFrames[i]; - var sheet:BitmapData = sheets[frame.sheetIndex]; - sheet.copyPixels(frame.frame, frame.rect, frame.rect.topLeft); + sheet = sheets[frame.sheetIndex]; + sheet.copyPixels(frame.frame, frame.frame.rect, frame.rect.topLeft); } for (i in sheets) {