Skip to content

Commit

Permalink
Added support of file pivot point
Browse files Browse the repository at this point in the history
Author: wastedabuser
Refs SammyJoeOsborne#2
  • Loading branch information
Adolio committed Jan 24, 2015
1 parent ac798c7 commit 20ad60a
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 7 deletions.
7 changes: 6 additions & 1 deletion src/com/sammyjoeosborne/spriter/models/File.as
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.sammyjoeosborne.spriter.models
{
import flash.geom.Point;
import starling.textures.Texture;
/**
* 1/14/2013 7:16 PM
Expand All @@ -12,13 +13,15 @@ package com.sammyjoeosborne.spriter.models
private var _width:Number;
private var _height:Number;
private var _texture:Texture;
private var _pivot:Point;

public function File($id:uint, $name:String, $width:Number, $height:Number)
public function File($id:uint, $name:String, $width:Number, $height:Number, $pivot:Point)
{
_id = $id;
_name = $name;
_width = $width;
_height = $height;
_pivot = $pivot;
}

public function get id():uint { return _id; }
Expand All @@ -32,6 +35,8 @@ package com.sammyjoeosborne.spriter.models
public function get texture():Texture { return _texture; }
public function set texture($value:Texture):void { _texture = $value; }

public function get pivot():Point { return _pivot; }

public function dispose():void
{
if (_texture) _texture.dispose();
Expand Down
20 changes: 14 additions & 6 deletions src/com/sammyjoeosborne/spriter/utils/ScmlParser.as
Original file line number Diff line number Diff line change
Expand Up @@ -71,14 +71,26 @@ package com.sammyjoeosborne.spriter.utils
$fileLength = $filenameXMLList.length();
for (var k:uint = 0; k < $fileLength; k++)
{
$folder.addFile(new File(k, $filenameXMLList[k].@name.toString(), Number($filenameXMLList[k].@width), Number($filenameXMLList[k].@height)));
$folder.addFile(new File(k, $filenameXMLList[k].@name.toString(), Number($filenameXMLList[k].@width), Number($filenameXMLList[k].@height), createPivot($filenameXMLList[k])));
//$filenameVec.push(Utils.getFileNameWithoutExtension($filenameXMLList[k].@name.toString()));
}

$scmlData.folders.push($folder);
}
}

private function createPivot(objects:Object):Point
{
var $hasPivotX:Boolean = objects.hasOwnProperty("@pivot_x");
var $hasPivotY:Boolean = objects.hasOwnProperty("@pivot_y");

if (!$hasPivotX && !$hasPivotY)
return null;

return new Point($hasPivotX ? Number(objects.@pivot_x) : 0,
$hasPivotY ? Number(objects.@pivot_y) : 0);
}

private function createTimelines($scmlData:ScmlData):void
{
var $scmlXML:XML = $scmlData.scmlXML;
Expand All @@ -97,8 +109,6 @@ package com.sammyjoeosborne.spriter.utils
var $spin:int;
var $folder:uint;
var $file:uint;
var $pivotX:Number;
var $pivotY:Number;
var $angle:Number;

var $numAnimations:uint = $animationList.length();
Expand Down Expand Up @@ -149,9 +159,7 @@ package com.sammyjoeosborne.spriter.utils
{
$key.folder = parseInt($keyXML.object.@folder);
$key.file = parseInt($keyXML.object.@file);
$pivotX = ($keyXML.object.hasOwnProperty("@pivot_x")) ? Number($keyXML.object.@pivot_x) : 0;
$pivotY = ($keyXML.object.hasOwnProperty("@pivot_y")) ? Number($keyXML.object.@pivot_y) : 1;
$key.pivot = new Point($pivotX, $pivotY);
$key.pivot = createPivot($keyXML.object) || _scmlData.folders[$key.folder].files[$key.file].pivot;
}
else
{
Expand Down

0 comments on commit 20ad60a

Please sign in to comment.