Ext JS提供了大量的功能来使类的创建和处理变得简单,还提供了一系列的功能来扩展和重新现有的Javascript类。这意味着可以为类添加行为和创建属于自己的类,或者重写某些函数的行为。在本文,将展示如何实现特定主题类的重写。
原文:http://www.sencha.com/blog/creating-theme-specific-overrides-in-ext-js/
作者:Lee Boonstra
Lee is a technical trainer at Sencha. She’s located in Amsterdam and has experience in both front-end and back-end development. Lee spends her spare time developing web and mobile apps. She is writing a cookbook for O'Reilly about Sencha Touch.
Ext JS提供了大量的功能来使类的创建和处理变得简单,还提供了一系列的功能来扩展和重新现有的Javascript类。这意味着可以为类添加行为和创建属于自己的类,或者重写某些函数的行为。在本文,将展示如何实现特定主题类的重写。
可能你已经知道如何创建Ext JS类的重写。例如,希望改变默认行为或修补框架。在这种情况下,可以使用以下代码来创建类的重写:
Ext.define('SomeClassName', { override : 'Ext.panel.Panel' //the override: by default, all panels will have a 200px width width : 200 });
packages > MyTheme > > overrides > > > window > > > > Window.js
下面来定义类:
Ext.define('MyTheme.window.Window', { });
Ext.define('MyTheme.window.Window', { override : 'Ext.window.Window' });
sencha app refresh
Ext.define('MyTheme.window.Window', { override : 'Ext.window.Window' }, function(){ console.log("Oh yes, my override works!"); });
listeners: { beforeshow: function(mywindow){ } }
requires: ['Ext.fx.Anim'],
Ext.create('Ext.fx.Anim', { target: mywindow, //argument of the beforeshow event duration: 1000, //ms from: { opacity: 0 }, to: { opacity: 1 } });
if(Ext.isIE9m) { }
Ext.define('MyTheme.window.Window', { override : 'Ext.window.Window', requires: ['Ext.fx.Anim'], closeAction: 'hide', listeners: { beforeshow: function(mywindow){ if(Ext.isIE9m) { Ext.create('Ext.fx.Anim', { target: mywindow, duration: 1000, from: { opacity: 0 }, to: { opacity: 1 } }); } } } });
@import "compass/css3/transition"; .x-window.x-hide-offsets { @include opacity(0); } .x-window { @include single-transition(opacity, 1000ms); @include opacity(1); }
sencha ant sass
sencha app watch