演練Ext JS 4.2自訂佈景主題

來源:互聯網
上載者:User

演練Ext JS 4.2自訂佈景主題

本文是根據API文檔中的介紹做的一次演練,以熟悉這個自訂佈景主題過程。


練習環境:

  • Sencha Cmd v4.0.1.45

  • Ruby 1.9.3-p392

  • firefox 26


首先,使用以下Sencha Cmd命令建立一個名為TestMyTheme的應用程式:

sencha -sdk c:\ext4 generate app TestMyThemec:\TestMyTheme


命令中,參數sdk聲明了架構檔案所在目錄為C盤的ext4目;generate為命令commands),表示要建立點什麼,而app則表示要建立的是應用程式;MyTheme是要建立的應用程式名稱,這樣,建立的應用程式將會以TestMyTheme作為命名空間;最後的“C:\TestMyTheme”則表示應用程式將建立到C盤的TestMyTheme目錄。


應用程式建立後,使用以下Sencha Cmd命令來將應用程式轉換為Web服務,以便預覽效果:

sencha fs web -port 8000 start -map c:\TestMyTheme


命令中,fs命令表示將要使用功能命令;web則表示建立一個簡單的Web伺服器;參數port則用例定義訪問連接埠,在這裡將使用8000連接埠;start表示啟動伺服器;最後的路徑表示Web伺服器指向的訪問目錄。


命令執行後,如果顯示以下提示資訊,則表示Web服務已經成功啟動:

Sencha Cmd v4.0.1.45[INF] Starting shutdown listener socket[INF] Listening for stop requests on: 49331[INF] Mapping http://localhost:8000/ toc:\TestMyTheme...[INF] Starting http://localhost:8000[INF] jetty-8.1.7.v20120910[INF] NO JSP Support for /, did not findorg.apache.jasper.servlet.JspServlet[INF] startedo.e.j.w.WebAppContext{/,file:/C:/TestMyTheme/}[INF] started o.e.j.w.WebAppContext{/,file:/C:/TestMyTheme/}[INF] Started SelectChannelConnector@0.0.0.0:8000Sencha Cmd v4.0.1.45[INF] Starting shutdown listener socket[INF] Listening for stop requests on: 49331[INF] Mapping http://localhost:8000/ toc:\TestMyTheme...[INF] Starting http://localhost:8000[INF] jetty-8.1.7.v20120910[INF] NO JSP Support for /, did not findorg.apache.jasper.servlet.JspServlet[INF] startedo.e.j.w.WebAppContext{/,file:/C:/TestMyTheme/}[INF] started o.e.j.w.WebAppContext{/,file:/C:/TestMyTheme/}[INF] Started SelectChannelConnector@0.0.0.0:8000Sencha Cmd v4.0.1.45[INF] Starting shutdown listener socket[INF] Listening for stop requests on: 49331[INF] Mapping http://localhost:8000/ toc:\TestMyTheme...[INF] Starting http://localhost:8000[INF] jetty-8.1.7.v20120910[INF] NO JSP Support for /, did not findorg.apache.jasper.servlet.JspServlet[INF] startedo.e.j.w.WebAppContext{/,file:/C:/TestMyTheme/}[INF] started o.e.j.w.WebAppContext{/,file:/C:/TestMyTheme/}[INF] Started SelectChannelConnector@0.0.0.0:8000


現在,在瀏覽器輸入以下地址,會看到如所示效果:http://localhost:8000/


650) this.width=650;" src="http://www.bkjia.com/uploads/allimg/140107/0Q502K94-0.png" style="float:none;" title="1.PNG" alt="wKioL1LH6kXClA0QAAAfgKOl_mo335.png" />


可以看到,目前使用的是經典主題。下面來建立自訂佈景主題。切換到C:\TestMyTheme目錄,輸入以下命令來建立自訂佈景主題:

sencha generate theme MyTheme



命令執行完後,切換到C:\TestMyTheme\packages目錄會看到多了一個MyTheme目錄,該目錄就是用來建立自訂佈景主題的目錄。目前的主題是從經典主題擴充出來的,而這裡需要從海王星主題擴充,所以,要進入MyTheme目錄,開啟package.json檔案,將extend屬性的值修改為ext-theme-neptune就行了。


下面先來測試一下自訂佈景主題。在DOS視窗下切換到C:\TestMyTheme\packages\MyTheme目錄,然後輸入以下命令來產生自訂佈景主題:

sencha package build


主題產生以後,開啟C:\TestMyTheme\.sencha\app目錄下的sencha.cfg檔案。在檔案中尋找app.theme,會找到以下語句:

app.theme=ext-theme-classic


從語句中可以看到,當前使用的主題是經典主題,現在要使用自訂佈景主題,因而需要將ext-theme-classic修改為MyTheme。修改完成後,在DOS中,切換到C:\TestMyTheme目錄,輸入以下命令產生一次應用程式:

sencha app build


產生過程完成後,重新整理瀏覽器應該可以看到所示的效果,主題已經更換為自訂佈景主題從海王星主題繼承的)。


650) this.width=650;" src="http://www.bkjia.com/uploads/allimg/140107/0Q502F29-1.png" title="2.PNG" alt="wKioL1LH6qqz0VOxAAAXB8cEscY308.png" />


下面來研究下怎麼修改主題。一般情況下,主要的修改方式有兩種,一種是通過修改主題變數來實現,一種是直接定義自己的樣式。要修改變數值,需要在C:\TestMyTheme\packages\MyTheme\sass\var目錄下進行,要直接定義自己的樣式需要在C:\TestMyTheme\packages\MyTheme\sass\src目錄進行。具體修改方式可參考Ext JS包裡packages\ext-theme-neptune\sass\目錄裡的檔案。


例如,要修改標籤頁標籤欄的背景顏色,可在C:\TestMyTheme\packages\MyTheme\sass\var目錄下建立一個名為tab的目錄,然後建立一個名為Bar.scss的檔案,在API中,可以查到Ext.tab.Bar的背景顏色的CSS變數代碼是$tabbar-base-color,在Bar.scss檔案中添加以下代碼就可以修改標籤欄的背景顏色了:

$tabbar-base-color: #ff0 !default;


修改完成後,在C:\TestMyTheme目錄運行“senccha app build”命令產生一次應用程式,就可看到標籤欄的背景顏色已經修改為黃色了。


如果想直接修改面板主體的背景顏色,但不想修改變數值,可以在C:\TestMyTheme\packages\MyTheme\sass\src目錄下建立一個名為panel的目錄,再在新剪的目錄下建立名為Panel.scss的檔案,然後在檔案中添加以下代碼:

.x-panel-body-default {    background:none repeat scroll 0 0 #00f;}


樣式x-panel-body-default是面板主體所使用的預設樣式,在這裡會將背景顏色修改為藍色。重建應用程式後,就會看到面板的背景顏色已經修改為藍色了。


執行打包命令後,就可以C:\TestMyTheme\packages\MyTheme\build\resources目錄下找到打包好以後的css檔案,將css檔案和images目錄複寫到項目中就可以在項目中使用自訂的主題了。


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.