| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148 | <!DOCTYPE html><html><head>  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  <title>The source code</title>  <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />  <script type="text/javascript" src="../resources/prettify/prettify.js"></script>  <style type="text/css">    .highlight { display: block; background-color: #ddd; }  </style>  <script type="text/javascript">    function highlight() {      document.getElementById(location.hash.replace(/#/, "")).className = "highlight";    }  </script></head><body onload="prettyPrint(); highlight();">  <pre class="prettyprint lang-js"><span id='Ext-fx-target-Sprite'>/**</span> * @class Ext.fx.target.Sprite This class represents an animation target for a {@link Ext.draw.Sprite}. In general this class will not be created directly, the {@link Ext.draw.Sprite} will be passed to the animation and and the appropriate target will be created. * @markdown */Ext.define('Ext.fx.target.Sprite', {    /* Begin Definitions */    extend: 'Ext.fx.target.Target',    /* End Definitions */    type: 'draw',    getFromPrim: function (sprite, attr) {        var obj;        switch (attr) {            case 'rotate':            case 'rotation':                obj = sprite.attr.rotation;                return {                    x: obj.x || 0,                    y: obj.y || 0,                    degrees: obj.degrees || 0                };            case 'scale':            case 'scaling':                obj = sprite.attr.scaling;                return {                    x: obj.x || 1,                    y: obj.y || 1,                    cx: obj.cx || 0,                    cy: obj.cy || 0                };            case 'translate':            case 'translation':                obj = sprite.attr.translation;                return {                    x: obj.x || 0,                    y: obj.y || 0                };            default:                return sprite.attr[attr];        }    },    getAttr: function (attr, val) {        return [            [this.target, val != undefined ? val : this.getFromPrim(this.target, attr)]        ];    },    setAttr: function (targetData) {        var ln = targetData.length,            spriteArr = [],            attrsConf, attr, attrArr, attrs, sprite, idx, value, i, j, x, y, ln2;        for (i = 0; i < ln; i++) {            attrsConf = targetData[i].attrs;            for (attr in attrsConf) {                attrArr = attrsConf[attr];                ln2 = attrArr.length;                for (j = 0; j < ln2; j++) {                    sprite = attrArr[j][0];                    attrs = attrArr[j][1];                    if (attr === 'translate' || attr === 'translation') {                        value = {                            x: attrs.x,                            y: attrs.y                        };                    }                    else if (attr === 'rotate' || attr === 'rotation') {                        x = attrs.x;                        if (isNaN(x)) {                            x = null;                        }                        y = attrs.y;                        if (isNaN(y)) {                            y = null;                        }                        value = {                            degrees: attrs.degrees,                            x: x,                            y: y                        };                    } else if (attr === 'scale' || attr === 'scaling') {                        x = attrs.x;                        if (isNaN(x)) {                            x = null;                        }                        y = attrs.y;                        if (isNaN(y)) {                            y = null;                        }                        value = {                            x: x,                            y: y,                            cx: attrs.cx,                            cy: attrs.cy                        };                    }                    else if (attr === 'width' || attr === 'height' || attr === 'x' || attr === 'y') {                        value = parseFloat(attrs);                    }                    else {                        value = attrs;                    }                    idx = Ext.Array.indexOf(spriteArr, sprite);                    if (idx == -1) {                        spriteArr.push([sprite, {}]);                        idx = spriteArr.length - 1;                    }                    spriteArr[idx][1][attr] = value;                }            }        }        ln = spriteArr.length;        for (i = 0; i < ln; i++) {            spriteArr[i][0].setAttributes(spriteArr[i][1]);        }        this.target.redraw();    }});</pre></body></html>
 |