|
新一篇: 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编码解码,将& < > “替换为&<>"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中都有说明, |