日期:2014-05-16  浏览次数:20327 次

[转载]EXT核心API详解(七)-Ext.KeyNav/KeyMap/JSON/Format/DelayedTask/TaskRunner/TextMetri
Ext.KeyNav

Ext的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() : void

enable() : void

Ext.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() : void

enable() : void

isEnabled() : 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未定义或为空字符串则返回defaultValue

ellipsis( String value, Number length ) : String

如果value的长度超过length的,取前length-3个并用...替代,对中国人来说还是垃圾功能,用的字符串长度不是字节长度

fileSize( Number/String size ) : String

简单的格式化文件长度为 xxxbytes xxxKB xxxMB,没有GB哟

htmlEncode( String value ) : String

htmlDecode( String value ) : String

HTML编码解码,将& < > “替换为&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本身

upper