/** * @class Ext.fx.target.Sprite * @extends Object */ Ext.define('Ext.fx.target.Sprite', { /* Begin Definitions */ /* End Definitions */ isAnimTarget: true, constructor: function(target) { this.target = target; Ext.fx.target.Sprite.superclass.constructor.call(this, target); }, type: 'draw', getId: function() { return this.target.id; }, getFromPrim: function(sprite, attr) { var o; if (attr == 'translate') { o = { x: sprite.attr.translation.x || 0, y: sprite.attr.translation.y || 0 }; } else if (attr == 'rotate') { o = { degrees: sprite.attr.rotation.degrees || 0, x: sprite.attr.rotation.x, y: sprite.attr.rotation.y }; } else { o = sprite.attr[attr]; } return o; }, getAttr: function(attr, val) { return [[this.target, val != undefined ? val : this.getFromPrim(this.target, attr)]]; }, setAttr: function(targetData) { var ln = targetData.length, attrs, attr, attrArr, spriteArr = [], attPtr, spritePtr, idx, value, i, j, x, y, ln2; for (i = 0; i < ln; i++) { attrs = targetData[i].attrs; for (attr in attrs) { attrArr = attrs[attr]; ln2 = attrArr.length; for (j = 0; j < ln2; j++) { spritePtr = attrArr[j][0]; attPtr = attrArr[j][1]; if (attr == 'translate') { value = { x: attPtr.x, y: attPtr.y }; } else if (attr == 'rotate') { x = attPtr.x; if (isNaN(x)) { x = null; } y = attPtr.y; if (isNaN(y)) { y = null; } value = { degrees: attPtr.degrees, x: x, y: y }; } else { value = attPtr; } idx = Ext.Array.indexOf(spriteArr, spritePtr); if (idx == -1) { spriteArr.push([spritePtr, {}]); idx = spriteArr.length - 1; } spriteArr[idx][1][attr] = value; } } } ln = spriteArr.length; for (i = 0; i < ln; i++) { spritePtr = spriteArr[i]; spritePtr[0].setAttributes(spritePtr[1]); } this.target.redraw(); } });