• EXT核心API详解(七)Ext.KeyNav/KeyMap/JSON/Format/DelayedTask/TaskRunner/TextMetrics/XTemplate


    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本身

    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] ) : Object
    stop( Object task ) : Object
    stopAll() : void


    Ext.util.TextMetrics
    这个类主要是为了准备的得到块状化文本正确的高度和宽度
    例:
    var metrics=Ext.util.TextMetrics.createInstance('div');
    metrics.setFixedWidth(100);
    var size=metrics.getSize("中华人民共和国中华人民共和国中华人民共和国中华人民共和国");
    Ext.MessageBox.alert("getsize",String.format("{0}px\theight:{1}px",size.width,size.height))

    方法
    bind( String/HTMLElement el ) : void
    绑定到el

    createInstance( String/HTMLElement el, [Number fixedWidth] ) : Ext.util.TextMetrics.Instance
    为el创建TextMetrics实例

    getHeight( String text ) : Number
    getSize( String text ) : Object
    getWidth( 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.XTemplate
    apply() : void
    applyTemplate( Object values ) : String
    compile() : Function
    这些方法Ext.Template中都有说明,
  • 相关阅读:
    Jsp补充
    Jsp和Servlet关系
    ServletContext简介
    利用Session实现三天免登陆
    Cookie简介
    JSP简介
    线程基础--同步机制
    深思——工作面试
    response.setcontenttype的參数
    Codeforces 96D Volleyball spfa
  • 原文地址:https://www.cnblogs.com/meetrice/p/1206049.html
Copyright © 2020-2023  润新知