本站首页    管理页面    写新日志    退出


«November 2025»
1
2345678
9101112131415
16171819202122
23242526272829
30


公告
本博客在此声明所有文章均为转摘,只做资料收集使用。并无其他商业用途。

我的分类(专题)

日志更新

最新评论

留言板

链接

Blog信息
blog名称:
日志总数:210
评论数量:205
留言数量:-19
访问次数:927815
建立时间:2007年5月10日




[EXT2.0]EXT核心API详解(七)-Ext.KeyNav/KeyMap/JSON/Format/DelayedTask/TaskRunner/TextMetrics/XTemplate
文章收藏,  网上资源,  软件技术,  电脑与网络

李小白 发表于 2008/4/24 23:17:36

新一篇: Ext类关系草图 Ext.KeyNavExt的keyNav类能为Ext.Element元素提供简单的按键处理方法例:var el=Ext.get("textarea");new Ext.KeyNav(el, {    "left" : function(e){        alert("left key down");        },    scope : el    });它的行为与KeyMap类似,但功能比KeyMap要弱小的多,只能处理以下已定义键enter/left/right/up/down/tab/esc/pageUp/pageDown/del/home/end同情一下KeyNav方法只有三个,不用多解释KeyNav( Mixed el, Object config )disable() : voidenable() : voidExt.KeyMap类则强悍的多,其中最重要的当然是对按键的定义更灵活例:上例用KeyMap来写可能是var el=Ext.get("textarea");new Ext.KeyMap(el, {        key:Ext.EventObject.LEFT,        fn: function(e){            alert("left key down");        },        scope : el    });方法KeyMap( Mixed el, Object config, [String eventName] )构造,与KeyNav也相似,但更灵活它是{key:        String/Array,     //可以是数字,字符,也可以是Ext.EventObject.LEFT这样的助记符,还能是他们组成的数组shift:       Boolean,          //ctrl键按下?ctrl:        Boolean,alt :        Boolean,fn  :        Function,         //回叫方法scope:       Object          //范围}这样的对象或它们组成的数组比如{key: 10},{key: [10,13]},{key:'\t'},{key:'abcd'},{key:Ext.EventObject.LEFT}都是合法的定义addBinding( Object/Array config ) : void增加新的绑定动作 config参见构造disable() : voidenable() : voidisEnabled() : Boolean允许,静止和状态查询on( Number/Array/Object key, Function fn, [Object scope] ) : void只添加一个处理时addBinding的快捷方式,但个人感觉并没有简单到哪儿去。Ext.util.JSON轮到大名鼎鼎的JSON了,可惜Ext提供的JSON对象功能好弱小,只有encode主decode两个方法而且只能编码String/Array/Date,至少也要搞个 xml2json/json2xml方法呀Ext.util.Format主要提供了一些格式化方法capitalize( String value ) : String首字母大写date( Mixed value, [String format] ) : String格式化日期输出,还是Date.format方法好用dateRenderer( String format ) : Function返回一个利用指定format格式化日期的方法defaultValue( Mixed value, String defaultValue ) : String如果value未定义或为空字符串则返回defaultValueellipsis( String value, Number length ) : String如果value的长度超过length的,取前length-3个并用...替代,对中国人来说还是垃圾功能,用的字符串长度不是字节长度fileSize( Number/String size ) : String简单的格式化文件长度为 xxxbytes xxxKB xxxMB,没有GB哟htmlEncode( String value ) : StringhtmlDecode( String value ) : StringHTML编码解码,将& <  >  “替换为&amp;&lt;&gt;&quot;lowercase( String value ) : String将value转换为全小写stripScripts( Mixed value ) : String去除脚本标签stripTags( Mixed value ) : String去除HTML标签substr( String value, Number start, Number length ) : String取子字符串trim( String value ) : String去除开头和结尾的空格undef( Mixed value ) : Mixed如果value未定义,返回空字符串,反之返回value本身uppercase( String value ) : String转为全大写usMoney( Number/String value ) : String转为美元表示Ext.util.DelayedTask提供一个setTimeout的简单替代方法公开的方法也只有三个DelayedTask( [Function fn], [Object scope], [Array args] )delay( Number delay, [Function newFn], [Object newScope], [Array newArgs] ) :cancel() : void简单的示例用法如果var task=new Ext.util.DelayedTask(Ext.emptuFn);task.delay(1000);task.cancel();Ext.util.TaskRunner增强版的DelayedTask,能提供多线程的定时服务,例:var task = {    run: function(){        Ext.fly('clock').update(new Date().format('g:i:s A'));    },    interval: 1000 }var runner = new Ext.util.TaskRunner();runner.start(task);四个方法都很简单TaskRunner( [Number interval] )start( [Object task] ) : Objectstop( Object task ) : ObjectstopAll() : voidExt.util.TextMetrics这个类主要是为了准备的得到块状化文本正确的高度和宽度例:var metrics=Ext.util.TextMetrics.createInstance('div');metrics.setFixedWidth(100);var size=metrics.getSize("中华人民共和国中华人民共和国中华人民共和国中华人民共和国");Ext.MessageBox.alert("getsize",String.format("width:{0}px\theight:{1}px",size.width,size.height))方法bind( String/HTMLElement el ) : void绑定到elcreateInstance( String/HTMLElement el, [Number fixedWidth] ) : Ext.util.TextMetrics.Instance为el创建TextMetrics实例getHeight( String text ) : NumbergetSize( String text ) : ObjectgetWidth( String text ) : Number得到尺寸measure( String/HTMLElement el, String text, [Number fixedWidth] ) : Object测算文本text在el中将要占用的尺寸setFixedWidth( Number width ) : void设置指定的宽度Ext.XTemplate增强型模板,支持更多功能了,虽然方法不多,但用起来来还真的很麻烦,但并不建议大家学习这样的自定义语法,不如用xslt另外这个Xtemplate虽然命名空间在Ext之下,但源文件却是放在util目录中的XTemplate( String/Array html )XTemplate.from( String/HTMLElement el ) : Ext.XTemplateapply() : voidapplyTemplate( Object values ) : Stringcompile() : Function这些方法Ext.Template中都有说明,


阅读全文(3542) | 回复(0) | 编辑 | 精华
 



发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.969 second(s), page refreshed 144798758 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号