/** * @private */Ext.define('Ext.fx.animation.Flip', { extend: 'Ext.fx.animation.Abstract', alias: 'animation.flip', config: { easing: 'ease-in', /** * @cfg {String} direction The direction of which the slide animates * @accessor */ direction: 'right', half: false, out: null }, getData: function() { var me = this, from = me.getFrom(), to = me.getTo(), direction = me.getDirection(), out = me.getOut(), half = me.getHalf(), rotate = half ? 90 : 180, fromScale = 1, toScale = 1, fromRotateX = 0, fromRotateY = 0, toRotateX = 0, toRotateY = 0; if (out) { toScale = 0.8; } else { fromScale = 0.8; } switch (direction) { case this.DIRECTION_UP: case this.DIRECTION_TOP: if (out) { toRotateX = rotate; } else { fromRotateX = -rotate; } break; case this.DIRECTION_DOWN: case this.DIRECTION_BOTTOM: if (out) { toRotateX = -rotate; } else { fromRotateX = rotate; } break; case this.DIRECTION_RIGHT: if (out) { toRotateY = rotate; } else { fromRotateY = -rotate; } break; case this.DIRECTION_LEFT: if (out) { toRotateY = -rotate; } else { fromRotateY = rotate; } break; } from.setTransform({ rotateX: fromRotateX, rotateY: fromRotateY, scale: fromScale }); to.setTransform({ rotateX: toRotateX, rotateY: toRotateY, scale: toScale }); return this.callParent(); }});