私見、これを行う最善の方法は、個人の Window/Panel クラスを定義することだと思います。はい、1 つの方法は Ext.override 関数を使用することですが、それは良い考えではないと思います。
これを行うことをお勧めします:
Ext.define ('MyCustomWindow', {
extend: 'Ext.window.Window' ,
listeners: {
afterlayout: function (win) {
fleXenv.fleXcrollMain (win.body.id);
}
}
}
Ext.define ('MyCustomPanel', {
extend: 'Ext.panel.Panel' ,
listeners: {
afterlayout: function (panel) {
fleXenv.fleXcrollMain (panel.body.id);
}
}
}
これで、Ext.window.Window と Ext.panel.Panel を変更せずに、MyCustomWindow と MyCustomPanel をインスタンス化できます。
もう 1 つの方法は、WindowManager と PanelManager (これは自分で定義したもの) を使用することです。
Ext.WindowManager.register (window1);
Ext.WindowManager.register (window2);
Ext.WindowManager.register (window3);
Ext.WindowManager.each (function (win) {
win.on ('afterlayout', function (window) {
fleXenv.fleXcrollMain (window.body.id);
});
});
この場合、最初にウィンドウとパネルをインスタンス化し、それらをマネージャーに登録してから、上記の例で行ったように each 関数を呼び出す必要があります。