本文将根据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:8000

现在,在浏览器输入以下地址,会看到如下图所示效果:http://localhost:8000/

从图中可以看到,目前使用的是经典主题。下面来创建自定义主题。切换到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

生成过程完成后,刷新浏览器应该可以看到下图所示的效果,主题已经更换为自定义主题(从海王星主题继承的)。

下面来研究下怎么修改主题。一般情况下,主要的修改方式有两种,一种是通过修改主题变量来实现,一种是直接定义自己的样式。要修改变量值,需要在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目录复制到项目中就可以在项目中使用自定义的主题了。

演练Ext JS 4.2自定义主题的更多相关文章

  1. 【翻译】在Ext JS中创建特定主题的重写

    Ext JS提供了大量的功能来使类的创建和处理变得简单,还提供了一系列的功能来扩展和重新现有的Javascript类.这意味着可以为类添加行为和创建属于自己的类,或者重写某些函数的行为.在本文,将展示 ...

  2. 【翻译】如何创建Ext JS暗黑主题之二

    原文:How to Create a Dark Ext JS Theme– Part 2 我已经展示了如何去开发一个精致的暗黑主题,看起来就像Spotify.在本文的第一部分,了解了Fashion.S ...

  3. 【翻译】如何创建Ext JS暗黑主题之一

    原文:How to Create a Dark Ext JS Theme– Part 1 概述 我是不是都要演示我的Spotifinder Ext JS应用程序.它是一个很酷的应用程序,可连接到Las ...

  4. Ext JS 6学习文档-第8章-主题和响应式设计

    Ext JS 6学习文档-第8章-主题和响应式设计 主题和响应式设计 本章重点在 ExtJS 应用的主题和响应式设计.主要有以下几点内容: SASS 介绍和入门 主题 响应式设计 SASS 介绍和入门 ...

  5. [转]使用Sencha Ext JS 6打造通用应用程序

    原文地址:http://www.uedsc.com/using-sencha-ext-js-6-to-build-universal-apps.html 在Sencha和整个Ext JS团队的支持下, ...

  6. ExtJS4.2.1自定义主题(theme)样式详解

    (基于Ext JS 4.2.1版本) UI组件 学习ExtJS就是学习组件的使用.ExtJS4对框架进行了重构,其中最重要的就是形成了一个结构及层次分明的组件体系,由这些组件形成了Ext的控件. Ex ...

  7. 【翻译】使用Sencha Ext JS 6打造通用应用程序

    原文:Using Sencha Ext JS 6 to Build Universal Apps {.aligncenter} 在Sencha和整个Ext JS团队的支持下,我很高兴能跟大家分享一下有 ...

  8. Ext JS - 问答

    Ext JS - 问答 在下面你将可以找到关于Ext JS 的最常见问题的答复.如果没有找到您所需的答复,请访问 Ext JS 论坛或者提交一个支持申请. 如果你确信你的问题可以对本页有补充,请让我们 ...

  9. 【翻译】如何在Ext JS 6中使用Fashion美化应用程序

    原文:How to Style Apps with Fashion in Ext JS 6 在Ext JS 6,一个最大的改变就是框架合并,使用一个单一的代码库,就可以为每一种设备开发各具有良好体验的 ...

随机推荐

  1. java集合循环删除

    java集合循环删除,java list集合操作,java循环.分享牛,分享牛原创.java集合删除方法. 2.6.1.第一种方式 list.add("1"); list.add( ...

  2. For oracle databases, if the top showing the oracle database, then oracle process is using the top c

    Note 805586.1   Troubleshooting Session Administration (Doc ID 805586.1)Note 822527.1   How To Find ...

  3. JBOSS EAP 6 系列五 Managed domains 管理域最主要的功能是“统一部署,统一配置”

    摘要 本文首先介绍Managed Domain的概念,管理域最主要的功能是"统一部署,统一配置".接下来通过一个实例在"统一配置"部分实现一个双机配置起来的域, ...

  4. SSH框架实现仿淘宝购物demo

    还记得六月份实习的时候,曾经做过一个电商的项目,项目里面需要实现类似淘宝购物车的移动端的demo,随着项目的进行,再一次跟购物车碰面,但是今天呢,不是移动端的需求,如何使用SSH框架实现类似淘宝的购物 ...

  5. 关于Lt分发系统的时序图分析

    我们已经知道,系统共分为两个模块,mather与son 同时系统允许的操作也有三种,向mather提交war包,我某个服务器更新代码,为所有服务器更新代码 我们一个一个来看 先说,向mather提交w ...

  6. 在Activity,Service,Window中监听Home键和返回键的一些思考,如何把事件传递出来的做法!

    在Activity,Service,Window中监听Home键和返回键的一些思考,如何把事件传递出来的做法! 其实像按键的监听,我相信很多人都很熟练了,我肯定也不会说这些基础的东西,所以,前期,还是 ...

  7. UNIX网络编程——Socket粘包问题

    一.两个简单概念长连接与短连接:1.长连接 Client方与Server方先建立通讯连接,连接建立后不断开, 然后再进行报文发送和接收. 2.短连接 Client方与Server每进行一次报文收发交易 ...

  8. 从嵌入式linux到android应用开发

      时间过得很快,转眼之间已经到新公司一个月了.虽然学到了一些移动开发的知识,但是觉得离我的目标还很远,完全没能达到我想要的水平.以前产品都是自己主导的,需要完成什么,计划什么也是自己主导,现在得从头 ...

  9. Android Demo 下拉刷新+加载更多+滑动删除

    小伙伴们在逛淘宝或者是各种app上,都可以看到这样的功能,下拉刷新和加载更多以及滑动删除,刷新,指刷洗之后使之变新,比喻突破旧的而创造出新的,比如在手机上浏览新闻的时候,使用下拉刷新的功能,我们可以第 ...

  10. J2EE进阶(六)SSH框架工作流程项目整合实例讲解

    J2EE进阶(六)SSH框架工作流程项目整合实例讲解 请求流程 经过实际项目的进行,结合三大框架各自的运行机理可分析得出SSH整合框架的大致工作流程. 首先查看一下客户端的请求信息: 对于一个Web项 ...