当前位置:首页 > 述职报告 > 函数调用的顺序 Sencha Touch应用程序启动时的函数调用顺序
 

函数调用的顺序 Sencha Touch应用程序启动时的函数调用顺序

发布时间:2019-07-17 15:14:07 影响了:

页面加载完毕后,Ext.application方法中launch配置选项中指定的函数,通常是应用程序启动后立即执行的一些函数,将这些函数放在这里。

在编写MVC模式的应用程序的时候,处理launch函数之外,也可以在应用程序启动后,将所需执行的处理放置在每一个控制器的init函数中。该函数在Ext.application方法中launch函数之前被调用。如果使用设备配置文件的话,可以在每个设备配置文件中定义一个launch函数,这些launch函数,在每一个控制器的init函数之后,Ext.application方法中launch函数之前被调用。

应用程序启动时函数的调用顺序:

1. 每个控制器中的init函数

2. 设备配置文件中的launch函数(不清楚这个设备配置文件指的是什么)

3. 应用程序的launch函数

4. 每个控制器中的launch函数

/*******************************************************************************************************************************/

下面是一个事例,目的是看看各个函数执行的顺序:结果应该是,先执行controller/Main.js中的init()函数,在执行app.js中的launch函数,最后执行controller/Main.js中的launch()函数

/*******************************************************************************************************************************/

app.js

Ext.Loader.setPath({

"Ext": "touch/src",

"Oreilly": "app"

});

//

Ext.application({

name: "Oreilly",

requires: [

"Ext.MessageBox"

],

views: ["Main"],

controllers:["Main"],

icon: {

"57": "resources/icons/Icon.png",

"72": "resources/icons/Icon~ipad.png",

"114":"resources/icons/Icon@2x.png",

"144":"resources/icons/Icon~ipad@2x.png"

},

isIconPrecomposed: true,

startupImage: {

"320x460": "resources/startup/320x460.jpg",

"640x920": "resources/startup/640x920.png",

"768x1004": "resources/startup/768x1004.png",

"748x1024": "resources/startup/748x1024.png",

"1536x2008": "resources/startup/1536x2008.png",

"1496x2048": "resources/startup/1496x2048.png"

},

launch: function() {

// Destroy the #appLoadingIndicator element

//Ext.fly("appLoadingIndicator").destroy();

// Initialize the main view

Ext.Viewport.add(Ext.create("Oreilly.view.Main"));//这里调用了view视图下的Main.js

alert("总程序的launch()方法被调用");

},

onUpdated: function() {

Ext.Msg.confirm(

"Application Update",

"This application has just successfully been updated to the latest version. Reload now?",

function(buttonId) {

if (buttonId === "yes") {

window.location.reload();

}

}

);

}

});

------------------------------------------------------------------------------------------------------------------------------------------------------------

当调用Ext.application方法中launch函数之前页面已经加载好了

视图中的Main.js

app/view/Main.js 这里定义了两个按钮,以及单击按钮时弹出的alert

Ext.define("Oreilly.view.Main",{

extend:"Ext.Container",

xtype:"mainview",

config:{

id:"myPanel",

layout:"fit",

fullscreen:true,

items:[{

id:"mytoolbar",

docked:"top",

xtype:"toolbar",

items:[

{

xtype:"button",

id:"myButton1",

text:"测试按钮1",

handler:function(){

alert("测试按钮1");

}

},{

xtype:"button",

id:"myButton2",

text:"测试按钮2",

handler:function(){

alert("测试按钮2");

}

}

]

}]

}

});

------------------------------------------------------------------------------------------------------------------------------------

控制器里的Main.js

app/controller/Main.js

Ext.define("Oreilly.controller.Main",{

extend:"Ext.app.Controller",

xtype:"maincontroller",

init:function(){

alert("Main控制器的init()方法被调用");

},

launch:function(){

alert("Main控制器launch()方法被调用");

},

config:{

}

});

---------------------------------------------------------------------------------------------------------------------------------------------------------------

猜你想看
相关文章

Copyright © 2008 - 2022 版权所有 职场范文网

工业和信息化部 备案号:沪ICP备18009755号-3