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>
|