自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Sencha Touch跨平臺(tái)開發(fā)框架學(xué)習(xí)教程

移動(dòng)開發(fā)
本文將介紹目前一個(gè)著名的移動(dòng)跨平臺(tái)開發(fā)框架Sencha Touch, 該框架是世界上第一個(gè)基于HTML5的Mobile App框架,Sencha的前身其實(shí)大名鼎鼎的AJAX框架EXT JS,Sencha Touch目前是其下面的一個(gè)子框架項(xiàng)目,可以讓你的Web App看起來像Native App。

智能機(jī)的應(yīng)用開發(fā)如火如荼,比如Android,蘋果ios開發(fā)的應(yīng)用已越來越多。開發(fā)者在開發(fā)這些基于不同操作平臺(tái)上的無線應(yīng)用時(shí),都面臨要熟悉所用平臺(tái)的技術(shù)知識(shí)的挑戰(zhàn)。因此,目前有不少基于HTML5標(biāo)準(zhǔn)的跨移動(dòng)開發(fā)框架出現(xiàn),開發(fā)者只需要掌握HTML5,CSS及Javascript及相關(guān)框架的開發(fā)技巧就可以了。

在本文中,將介紹目前一個(gè)著名的移動(dòng)跨平臺(tái)開發(fā)框架Sencha Touch, 該框架是世界上第一個(gè)基于HTML5的Mobile App框架,Sencha的前身其實(shí)大名鼎鼎的AJAX框架EXT JS,Sencha Touch目前是其下面的一個(gè)子框架項(xiàng)目,可以讓你的Web App看起來像Native App。美麗的用戶界面組件和豐富的數(shù)據(jù)管理,全部基于最新的HTML5和CSS3的 WEB標(biāo)準(zhǔn),全面兼容AndroidApple iOS設(shè)備。

下面是Sencha官方給出的幾點(diǎn)特性:

1、基于最新的WEB標(biāo)準(zhǔn) – HTML5,CSS3,JavaScript。整個(gè)庫(kù)在壓縮和gzip后大約80KB,通過禁用一些組件還會(huì)使它更小。

2、支持世界上最好的設(shè)備。Beta版兼容Android和iOS,Android上的開發(fā)人員還可以使用一些專為Android定制的主題。

3、增強(qiáng)的觸摸事件。在touchstart、touchend等標(biāo)準(zhǔn)事件基礎(chǔ)上,增加了一組自定義事件數(shù)據(jù)集成,如tap、swipe、pinch、rotate等。

4、數(shù)據(jù)集成。提供了強(qiáng)大的數(shù)據(jù)包,通過Ajax、JSONp、YQL等方式綁定到組件模板,寫入本地離線存儲(chǔ)。

Sencha Touch的項(xiàng)目的地址在(http://www.sencha.com/products/touch/download),我們可以下載其中的最新版本。本系列教程將分四篇,將講解如何使用Sencha Touch設(shè)計(jì)一個(gè)記事本小應(yīng)用,用戶可以在上面簡(jiǎn)單記錄便條筆記,并將其保存在移動(dòng)設(shè)備中。

Sencha Touch跨平臺(tái)開發(fā)框架學(xué)習(xí)教程

應(yīng)用示意圖

系統(tǒng)的主要功能有:

(1)新建記事內(nèi)容

(2)編輯記事內(nèi)容

(3)刪除記事內(nèi)容

(4)在移動(dòng)設(shè)備應(yīng)用中保存記事的內(nèi)容。

本系列的教程,希望讀者具有一定的EXT JS框架的開發(fā)基礎(chǔ)知識(shí)為佳。在第一講中,先講解如何對(duì)應(yīng)用進(jìn)行框架的設(shè)計(jì)。

設(shè)計(jì)主頁(yè)面

首先,我們先來看如何設(shè)計(jì)用戶用于創(chuàng)建和編輯記事的表單,可以大概設(shè)計(jì)成如下的樣子:

可以看到,這個(gè)頁(yè)面中,有保存按鈕,以及一個(gè)刪除按鈕(一個(gè)垃圾圖標(biāo)),對(duì)應(yīng)到Sencha Touch框架中的元素如下圖所示:

Sencha Touch跨平臺(tái)開發(fā)框架學(xué)習(xí)教程

接下來是記事列表的界面,框圖如下:

Sencha Touch跨平臺(tái)開發(fā)框架學(xué)習(xí)教程

其對(duì)應(yīng)Sencha Touch中的框架元素如下:

Sencha Touch跨平臺(tái)開發(fā)框架學(xué)習(xí)教程

此外,還需要使用一個(gè)布局文件,它是溝通記事列表頁(yè)面和記事頁(yè)面登記的橋梁,這里我們使用EXT的card layout布局進(jìn)行布局,兩個(gè)界面的關(guān)系如下圖:

Sencha Touch跨平臺(tái)開發(fā)框架學(xué)習(xí)教程

構(gòu)建程序基本結(jié)構(gòu)

首先,在程序中的結(jié)構(gòu)如下圖所示,其中有三個(gè)主要的文件:index.html,app.js和app.cs。

在index.html中,主要功能是啟動(dòng)整個(gè)應(yīng)用程序并且引用相關(guān)的類庫(kù),如下代碼:

  1. <script class="hiddenSpellError"></script> 
  2. <script src=”senchatouch/1.1.0/sencha-touch.css" rel="stylesheet" type="text/css" /> 
  3. <link href="app.css" rel="stylesheet" type="text/css" /> 
  4. <script src="app.js" type="text/javascript"></script> 

這里,首先引入了sencha touch本身的類庫(kù)JS代碼,然后再引入app.css和app.js兩個(gè)文件,其中app.css為樣式文件,app.js文件為程序的核心功能JS文件。

下面我們介紹app.js中的具體代碼,首先是在app.js中進(jìn)行初始化:

  1.  var App = new Ext.Application({  
  2.     name : 'NotesApp',  
  3.     useLoadMask : true,  
  4.     launch : function () {  
  5.     }  
  6. }) 

其中,Ext.Application的實(shí)例的初始化,意味者一個(gè)sencha touch應(yīng)用的建立,具體的可以參考(http://dev.sencha.com/deploy/touch/docs/?class=Ext.Application)中對(duì)該類的說明,這個(gè)類的實(shí)例化后,會(huì)自動(dòng)創(chuàng)建一個(gè)全局的變量NotesApp,并且同時(shí)建立了如下的命名空間:

  1. NotesApp  
  2. NotesApp.views、  
  3. NotesApp.controllers  
  4. NotesApp.models  
  5. NotesApp.stores 

而launch的方法只會(huì)運(yùn)行一次,在這里可以創(chuàng)建應(yīng)用程序的viewport界面視圖,代碼如下:

  1. launch: function () {  
  2.     NotesApp.views.viewport = new Ext.Panel({  
  3.         fullscreen: true,  
  4.         html:'This is the viewport'  
  5.     });  

我們將整個(gè)界面布局設(shè)置為使用Panel面板,并且設(shè)置了fullscreen屬性為true,同時(shí)也會(huì)設(shè)置monitorOrientation屬性的值為true,這個(gè)是很有用的一個(gè)屬性,因?yàn)樗梢宰宲anel面板監(jiān)聽屏幕方向發(fā)生變化時(shí)候的事件。當(dāng)我們運(yùn)行后,顯示如下的界面:

Sencha Touch跨平臺(tái)開發(fā)框架學(xué)習(xí)教程

創(chuàng)建記事列表界面

當(dāng)我們的這個(gè)應(yīng)用一啟動(dòng)后,首先顯示的是記事列表頁(yè)面,其中頁(yè)面結(jié)構(gòu)如下圖:

Sencha Touch跨平臺(tái)開發(fā)框架學(xué)習(xí)教程

可以看到,是在一個(gè)pannel面版中,存在一個(gè)list列表控件和一個(gè)toolbar工具條列表。下面是pannel的代碼:

  1.  NotesApp.views.notesListContainer = new Ext.Panel({  
  2.     id : 'notesListContainer',  
  3.     layout : 'fit',  
  4.     html: 'This is the notes list container'  
  5. }); 

此時(shí),我們結(jié)合之前的代碼,看下目前的代碼應(yīng)該是如下的樣子:

  1. var App = new Ext.Application({  
  2.     name: 'NotesApp',  
  3.     useLoadMask: true,  
  4.     launch: function () {  
  5.  
  6.         NotesApp.views.notesListContainer = new Ext.Panel({  
  7.             id : 'notesListContainer',  
  8.             layout : 'fit',  
  9.             html: 'This is the notes list container'  
  10.         });  
  11.  
  12.         NotesApp.views.viewport = new Ext.Panel({  
  13.             fullscreen : true,  
  14.             layout : 'card',  
  15.             cardAnimation : 'slide',  
  16.             items: [NotesApp.views.notesListContainer]  
  17.         });  
  18.     }  
  19. }) 

可以看到,在viewport中的items屬性,我們將新的這個(gè)panel加入進(jìn)去了。

并且請(qǐng)注意cardAnimation中,說明了面板的使用效果是slide的動(dòng)畫展現(xiàn)效果。在模擬器中運(yùn)行后,會(huì)看到如下圖的效果:

Sencha Touch跨平臺(tái)開發(fā)框架學(xué)習(xí)教程

接下來,我們?cè)贋槠湓黾庸ぞ邨l,代碼如下:

  1. NotesApp.views.notesListToolbar = new Ext.Toolbar({  
  2. id: 'notesListToolbar',  
  3. title: 'My Notes'  
  4. }); 

將工具條粘附到記事列表的面板中是很簡(jiǎn)單的,只需要dockedItems 屬性即可:

  1. NotesApp.views.notesListContainer = new Ext.Panel({  
  2. id: 'notesListContainer',  
  3. layout: 'fit',  
  4. html: 'This is the notes list container',  
  5. dockedItems: [NotesApp.views.notesListToolbar]  
  6.  
  7. }); 

下圖就是添加工具條后的運(yùn)行效果:

Sencha Touch跨平臺(tái)開發(fā)框架學(xué)習(xí)教程

到目前為止,本講的內(nèi)容結(jié)束,主要是講解了如何架構(gòu)應(yīng)用的流程和頁(yè)面,并給出了啟動(dòng)界面中的記事列表的界面設(shè)計(jì)原型,目前的完整代碼如下:

  1. var App = new Ext.Application({  
  2.     name: 'NotesApp',  
  3.     useLoadMask: true,  
  4.     launch: function () {  
  5.  
  6.         NotesApp.views.notesListToolbar = new Ext.Toolbar({  
  7.             id: 'notesListToolbar',  
  8.             title: 'My Notes'  
  9.         });  
  10.  
  11.         NotesApp.views.notesListContainer = new Ext.Panel({  
  12.             id: 'notesListContainer',  
  13.             layout: 'fit',  
  14.             html: 'This is the notes list container',  
  15.             dockedItems: [NotesApp.views.notesListToolbar]  
  16.         });  
  17.  
  18.         NotesApp.views.viewport = new Ext.Panel({  
  19.             fullscreen: true,  
  20.             layout: 'card',  
  21.             cardAnimation: 'slide',  
  22.             items: [NotesApp.views.notesListContainer]  
  23.         });  
  24.     }  
  25. }) 

請(qǐng)繼續(xù)關(guān)注,我們將繼續(xù)學(xué)習(xí),如何實(shí)現(xiàn)新建立和編輯記事的功能。

小結(jié):跨平臺(tái)開發(fā)框架Sencha Touch學(xué)習(xí)教程的內(nèi)容介紹完了,希望通過本文的學(xué)習(xí)能對(duì)你有所幫助!

責(zé)任編輯:zhaolei 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2011-09-05 11:23:26

EclipseSencha Touc框架

2011-07-25 15:55:21

Sencha ToucHtml 5

2011-09-02 16:42:51

Sencha ToucWeb應(yīng)用

2011-09-02 15:18:49

Sencha Touc

2011-07-25 16:21:22

Sencha touc

2011-09-05 10:49:14

Sencha ToucjQuery MobiHTML5

2011-09-05 10:27:02

Sencha Touc手機(jī)應(yīng)用Android

2011-09-05 13:45:25

jQuery MobiSencha Touc移動(dòng)Web UI框架

2010-11-22 10:31:17

Sencha touc

2011-07-26 09:41:50

Sencha Touc特性HTML 5

2011-09-05 14:17:54

Sencha ToucMVC

2011-09-05 10:20:21

Sencha ToucAPP

2012-02-28 14:48:41

2012-01-10 14:10:26

Sencha Touc

2011-07-26 09:58:24

2011-07-26 09:46:53

Sencha Touc

2011-07-26 10:21:25

Sencha Touc

2011-07-26 10:44:15

Sencha Touc

2011-09-02 16:21:08

Sencha Touc自動(dòng)生成工具

2011-11-16 13:14:02

Sencha TouciOS本地應(yīng)用
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)