热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

HTML5移动web开发指南中senchatouch笔记

《HTML5移动web开发指南》,是UC公司著名前端开发师唐俊开(网名:三桥)的新书,介绍了jquerymo
《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 按钮





按钮根据 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
app.stores.noteStore.removeAt(0);

}

app.stores.noteStore.sync();

app.views.moreActionSheet.hide();

});

},


推荐阅读
  • 本文介绍如何使用 Android 的 Canvas 和 View 组件创建一个简单的绘图板应用程序,支持触摸绘画和保存图片功能。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 本文探讨了2019年前端技术的发展趋势,包括工具化、配置化和泛前端化等方面,并提供了详细的学习路线和职业规划建议。 ... [详细]
  • 本文介绍了如何利用JavaScript或jQuery来判断网页中的文本框是否处于焦点状态,以及如何检测鼠标是否悬停在指定的HTML元素上。 ... [详细]
  • 本文介绍了如何使用JQuery实现省市二级联动和表单验证。首先,通过change事件监听用户选择的省份,并动态加载对应的城市列表。其次,详细讲解了使用Validation插件进行表单验证的方法,包括内置规则、自定义规则及实时验证功能。 ... [详细]
  • 深入理解Shell脚本编程
    本文详细介绍了Shell脚本编程的基础概念、语法结构及其在操作系统中的应用。通过具体的示例代码,帮助读者掌握如何编写和执行Shell脚本。 ... [详细]
  • Spring Boot 中静态资源映射详解
    本文深入探讨了 Spring Boot 如何简化 Web 应用中的静态资源管理,包括默认的静态资源映射规则、WebJars 的使用以及静态首页的处理方法。通过本文,您将了解如何高效地管理和引用静态资源。 ... [详细]
  • 本文介绍了如何在iOS应用中自定义导航栏按钮,包括使用普通按钮和图片生成导航条专用按钮的方法。同时,探讨了在不同版本的iOS系统中实现多按钮布局的技术方案。 ... [详细]
  • 本文提供了手势解锁功能的详细实现方法和源码下载链接。通过分析手势解锁的界面和逻辑,详细介绍如何在iOS应用中实现这一功能。 ... [详细]
  • 我在一个phonegap应用程序中使用jquerymobile,我试图将一个变量从文本框传递到下一页,用变量进行xml遍历。我的页面有这个javascript发送变量,但我不知道如 ... [详细]
  • JavaScript是一个绝冠全球的编程语言,可用于Web开发、移动应用开发(PhoneGap、Appcelerator)、服务器端开发(Node.js和Wakanda等等。JavaScrip ... [详细]
  • 本文详细介绍了如何使用 Yii2 的 GridView 组件在列表页面实现数据的直接编辑功能。通过具体的代码示例和步骤,帮助开发者快速掌握这一实用技巧。 ... [详细]
  • 优雅实现 jQuery 折叠展开下拉菜单
    本文介绍了一种使用 jQuery 实现的优雅折叠和展开效果的下拉菜单,通过简单的 HTML 结构和 CSS 样式,结合 jQuery 脚本,可以轻松创建出美观且功能强大的下拉菜单。 ... [详细]
  • 送给设计师们的礼物:10个网站提高你的创意理念
    MyModernMetropolis,这个是我很喜欢的一个网站,细心的朋友会发现DDDesign有一部分文章是来自这里,如果你寻找创意灵感,这个也许是个很好的开始。2.FFFFou ... [详细]
  •  HybridApp在过去的两年中已经成为移动界的核心话题,但是作为一名Web开发者来说要如何站在移动互联网的浪潮之巅呢?是选择学习原生开发,研究Java、Object-C、C#等语言,还是 ... [详细]
author-avatar
mobiledu2502917953
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有