2010-12-14 5 views
2

J'ai le code suivant pour redimensionner une fenêtre, mais il semble que la mise à l'échelle d'une fenêtre/panneau fonctionne uniquement pour la largeur?Redimensionnement (redimensionnement) de la hauteur d'une fenêtre ou d'un panneau dans ExtJS n'anime pas

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(); 
}); 

Le changement de taille fonctionne si je décommenter la ligne « setHeight », mais l'animation Resize est parti. Une idée?

Répondre

0

Apparemment, la fenêtre ne peut pas être mise à l'échelle comme cela.

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

Il n'y a pas de méthode à grande échelle dans la classe de fenêtre. Vous mettez à l'échelle l'élément de la fenêtre par programmation sans la connaissance de la fenêtre.

Une solution pour cela est redéfinissant la méthode à l'échelle des composants Boîte:

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(); 
}); 

Solution trouvée à http://www.sencha.com/forum/showthread.php?65176-Window-scale()-override-problem&p=314906#post314906

Questions connexes