Масштабирование (изменение размера) высоты окна или панели в ExtJS не приводит к анимации - PullRequest
2 голосов
/ 14 декабря 2010

У меня есть следующий код для изменения размера окна, но кажется, что масштабирование окна / панели работает только для ширины?

Ext.onReady(function() {
    var myWindow = new Ext.Window();
    myWindow.width = 80;
    myWindow.height = 80;
    var myButton = new Ext.Button({
        text: 'Resize',
        handler: function(button, event){
            myWindow.el.scale(400, 400);
            //myWindow.setHeight(400);
        }
    });
    myWindow.add(myButton);
    myWindow.show();
});

Изменение размера работает, если я раскомментирую строку 'setHeight', но анимация изменения размера исчезнет. Есть идеи?

1 Ответ

0 голосов
/ 15 декабря 2010

Видимо, окно не может быть масштабировано таким образом.

http://www.sencha.com/forum/showthread.php?118694-Scaling-(resizing)-the-height-of-a-window-(or-panel)-does-not-work&p=551012#post551012

В классе Window нет метода масштабирования. Вы программно масштабируете Элемент Окна без ведома Окна.

Решением для этого является переопределение метода масштабирования для компонентов Box:

Ext.override(Ext.BoxComponent, {
    scale: function(w, h, duration, easing) {
        var a = Ext.lib.Anim.motion(this.el, {
            height: {to: h},
            width: {to: w}
        }, duration || 0.35, easing || 'easeOut', function(){
            a.onTween.clearListeners();
        });
        a.onTween.addListener(function(){
            if (this.fixedCenter) {
                this.center();
            }
            this.syncSize();
            this.syncShadow();
        }, this);
        a.animate();
    }
});

Ext.onReady(function(){

    var scale = function () {
        win.scale(500, 400);
    }
    var win = new Ext.Window({
        fixedCenter: true,
        html: "test",
        width: 200,
        height: 200,
        buttons: [{
            text: "scale",
            handler: scale
        }]
    }).show();
});

Решение найдено в http://www.sencha.com/forum/showthread.php?65176-Window-scale()-override-problem&p=314906#post314906

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...