extjs-gpl
Version:
GPL licensed version of Sencha Ext JS
94 lines (78 loc) • 2.11 kB
JavaScript
/**
* @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:
if (out) {
toRotateX = rotate;
} else {
fromRotateX = -rotate;
}
break;
case this.DIRECTION_DOWN:
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();
}
});