`

HTML 5移动web开发指南中sencha touch笔记

阅读更多
《HTML 5移动web开发指南》,是UC公司著名前端开发师唐俊开(网名:三桥)
的新书,介绍了jquery mobile,sencha touch,phonegap的开发,内容很丰富,
最后还有一个小的实例,推荐阅读,给分85分,下面是其中sencha touch的
一些本人新学到的知识点小结
1  sencha touch中如果为某控件同时指定了cls样式和componentCls样式的话,
则componentCls样式会覆盖cls样式,如果还加了baseCls样式,则原来的样式会被命名
为比如panel_baseCls和pannel_baseCls登新的样式名称


2 UI 按钮
   <script type="text/javascript">
  Ext.setup( {
    onReady: function() {
      // create the root panel
      new Ext.Panel({
        fullscreen: true,
        items: [
          // add a panel to the root panel
          // this will contain a vertical layout of buttons
          {
            xtype: "panel",
            layout: "vbox",
            items: [
              {
                xtype: "button",
                ui: "normal",
                text: "Normal" 
              },
              {
                xtype: "button",
                ui: "back",
                text: "Back" 
              },
              {
                xtype: "button",
                ui: "round",
                text: "Round" 
              },
              {
                xtype: "button",
                ui: "action",
                text: "Action" 
              },
              {
                xtype: "button",
                ui: "forward",
                text: "Forward" 
              }
            ] 
          }
        ]
      });
    }
  });
</script>

   按钮根据 ui 配置选项进行样式化。支持的按钮类型是 normal、back、round、action 和 forward。


3 为sencha touch设置自定义图标,见
http://wenku.baidu.com/view/47bc9087e53a580216fcfead.html

  实际上ui,iconmark,iconcls三个组件属性来实现,其实是base64编码而已,体积大了

4  按钮分组SegmentedButton.toggle,多个按钮中只有一个能按,比如
      xtype: 'toolbar',
                        docked: 'top',
                        items: [{
                            xtype: 'segmentedbutton',
                            items: [{
                                text: 'left',
                                pressed: true
                            }, {
                                text: 'center'
                            }, {
                                text: 'right'
                            }, {
                                text: 'justify'
                            }], // items
                            listeners: {
                                toggle: function (segBtn, btn, isPressed) {
                                    Ext.Msg.alert('Ext.SegmentedButton toggle:',
                                        btn.config.text + ' (pressed:' + isPressed + ')');
                                } // toggle


5 Carousels,翻译过来“传送带”的意思,顾名思义,仿佛屏幕背后就有一传送带,用户发出向左或向右的指令,即可命令传送带“移动”。移动设备上的屏

幕就是当前显示的内容。在中间的那个“一点点”图案即为指示器,指示器可以告诉你剩余有多种张待现实的页面。

   Ext.create('Ext.Carousel', {
    fullscreen: true,

    defaults: {
        styleHtmlContent: true
    },

    items: [
        {
            html : 'Item 1',
            style: 'background-color: #5E99CC'
        },
        {
            html : 'Item 2',
            style: 'background-color: #759E60'
        },
        {
            html : 'Item 3'
        }
    ]
});

6 ext.util.geolocation用法:

getCurrentPosition:function(){ 
    var geo = new Ext.util.GeoLocation({ 
        autoUpdate: true, 
        listeners: { 
            locationupdate: function (geo) { 
                Ext.getCmp('latitude') 
                    .setValue(geo.coords.latitude); 
                Ext.getCmp('longitude') 
                    .setValue(geo.coords.longitude); 
            }, 
            locationerror:function(geo, 
                                bTimeout, 
                              bPermissionDenied, 
                              bLocationUnavailable, 
                              message){ 
            } 
        } 
    }); 
    geo.updateLocation(); 

  
  
7 自定义命名空间后,则可以直接使用调用实例变量了
   比如MyApp.panelDemo=new Ext.Pannel({    });

8 sencha touch mvc中的model:
   
      MyApp.models.User=Ext.regModel( ..........)


然后定义store,比如:


app.stores.noteStore = new Ext.data.Store({
model:'note',
id:'noteStore'
});


app.models.note = Ext.regModel("note",{
fields:[
{name:'id',type:'int'},
{name:'title',type:'string'},
        {name:'content',type:'string'},
        {name:'position',type:'string'},
        {name:'latitude',type:'string'},
        {name:'longitude',type:'string'}
],
    /* 使用localStorage代理 */
proxy : {
type:'localstorage',
        id:'noteStorage'
}
});




一对多关系
     Ext.regModel('User',[fields:['id'],hasMany:['Post']});
    belongsTo:........

9 setactiveitem方法,能在不同的子组件中隐藏和切换,比如
    Ext.getCmp('pannel1').hide();
    Ext.getCmp('pannel2').show();
  等价于
   Ext.getCmp('pannel1').setActviteItem('pannel2');

10 MVC中的控制类注册
    MyApp.controllers.demoAction=Ext.regController('demoAction',{ showpannel:function()
                                                                       {

                                                                    });
                                                           }
                                       });
        调用时MyApp.controllers.demoAction.showpannel();


11 一个保存数据到sencha touch localstorage例子
    saveNote:function(){
        var form = Ext.getCmp("noteForm");
        var store = app.stores.noteStore;

        var last = store.last();
        var maxId = last==undefined?1:last.data.id+1;
        form.submit({
            waitMsg:'处理中...',
            success:function(){
                app.controllers.appController.showListPanel();
            }
        });
        var m = Ext.ModelMgr.create({id:maxId},'note');
        form.updateRecord(m,false);
        app.stores.noteStore.insert(maxId,m);
        app.stores.noteStore.sync();
        form.reset();
        app.controllers.appController.showListPanel();
    },

删除记录:
     removeAllNote:function(){
        Ext.Msg.confirm("确认", "你确认要清除本地所有数据?", function(){
            var count = app.stores.noteStore.getCount();
            for(var i=0;i<count;i++){
                app.stores.noteStore.removeAt(0);
            }
            app.stores.noteStore.sync();
            app.views.moreActionSheet.hide();
        });
    },



2
12
分享到:
评论

相关推荐

    HTML5移动Web开发指南

    《HTML5移动Web开发指南》共分为四大部分,第一部分主要讲述web技术的发展及html5标准在移动web技术中的应用;第二部分主要介绍html5的新功能和新特性如何在移动设备浏览器中使用及相关展望;第三部分主要介绍目前...

    HTML5移动Web开发指南-样章试读11

    《HTML5移动Web开发指南》共分为四大部分,第一部分主要讲述Web技术的发展及HTML5标准在移动Web技术中的应用;第二部分主要介绍HTML5的新功能和新特性如何在移动设备浏览器中使用及相关展望;第三部分主要介绍目前...

    HTML5移动Web开发指南(完整版)

    本书主要围绕HTML5技术,讲述如何利用HTML5相关技术开发移动Web网站和WebApp应用程序。本书共分为四大部分,第一部分主要讲述Web技术的发展及HTML5标准在移动Web技术中的应用;第二部分主要介绍HTML5的新功能和新...

    HTML5移动Web开发指南.pdf

    基于上述两种原因,作者认为需要编写一本能够利用HTML5新技术开发移动Web应用的入门书籍,令广大读者在真正学习到HTML5新技术的同时,也能快速掌握移动Web开发的基础知识。 关于本书 本书不足之处在于,本书并没有...

    Sencha 和 Sencha Touch 简介

    Sencha Touch 是第一个专门设计为移动设备开发 web 应用的 JavaScript 框架,它基于 HTML5 和 CSS3 的 web 标准,全面兼容 Android 和 Apple iOS,通过 Sencha Touch 框架用户可以创建非常像移动设备本地应用的 web ...

    HTML5移动web开发指南

    本书主要围绕 HTML5 技术, 讲述如何利用 HTML5 相关技术开发移动 Web 网站和 Web App 应 用程序。本书共分为四大部分,第一部分主要讲述 Web 技术的发展及 HTML5 标准在移动 Web 技术 中的应用;第二部分主要介绍 ...

    SenchaTouch 开发指南

    SenchaTouch 开发指南 SenchaTouch 开发指南附有案例

    [Sencha Touch] Sencha Touch 2 移动应用开发教程 (英文版)

    [Packt Publishing] Sencha Touch 2 移动应用开发教程 (英文版) [Packt Publishing] Creating Mobile Apps with Sencha Touch 2 (E-Book) ☆ 出版信息:☆ [作者信息] John Earl Clark , Bryan P. Johnson [出版...

    Sencha touch 移动开发

    sencha touch 移动跨平台开发

    《SenchaTouch权威指南》源代码-

    《SenchaTouch权威指南》同书源代码 本代码清单内包括本书全部资源文件与全部代码文件,其中内容如下所示: 1.第一章至第十四章下各子文件夹,以及第十五章的15-1、15-2、15-3子文件夹中均包含开发阶段使用的index-...

    Sencha Touch开发的项目《般若人生》源码

    Sencha Touch开发的项目《般若人生》源码

    MAC OS 配置Sencha Touch +Cordova 开发环境

    MAC OS 下sencha touch +cordova 开发环境配置。可以将H5 hybird 应用打包成IOS 应用。

    [Sencha Touch] Sencha Touch 实战 英文版

    [Manning Publications] Sencha Touch 实战 英文版 [Manning Publications] Sencha Touch in Action E Book ☆ 出版信息:☆ [作者信息] Jesus Garcia Anthony De Moss Mitchell Simoens [出版机构] Manning ...

    Sencha Touch 权威指南 源码

    《Sencha Touch 权威指南》陆凌牛著的源码包

    Sencha Touch 权威指南 陆凌牛源码

    Sencha Touch 权威指南 陆凌牛源码

    移动Web应用开发技术讲解-Sencha Touch 1.1

    移动Web应用,简单来理解就是针对移动终端优化过的Web 站点,终端用户通过支持Html5、Css3、Javascript标准的Webkit内核浏览器访问部署在服务器的Web应用。

    一个完整的sencha touch 应用案例

    sencha touch 应用案例 sencha touch 案例 一个完整的sencha touch 应用案例 移动WEB社区开发的日志案例 非常不错!

    使用SenchaTouch开发跨平台移动Web应用.doc

    使用SenchaTouch开发跨平台移动Web应用

    sencha touch中文翻译文档

    sencha touch中文翻译文档,包含sencha touch入门基础和一些控件的使用说明

    sencha touch

    Sencha Touch是专门用于移动应用开发的JavaScript框架,也是第一个基于HTML5的移动应用框架,其前身是Ext。使用Sencha Touch,开发者可以构建在iPhone、Android和BlackBerry touch等设备上运行的移动web应用,其效果...

Global site tag (gtag.js) - Google Analytics