`

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

    博客分类:
  • EXT
阅读更多
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("width:{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中都有说明,
分享到:
评论

相关推荐

    Ext API详解--笔记

    `EXT核心API详解(七)-Ext.KeyNav KeyMap JSON Format DelayedTask TaskRunner TextMetrics XTemplate.txt`涉及键盘导航、键映射、JSON处理、格式化、延迟任务、任务调度器、文本测量以及XTemplate等内容。...

    整理的Ext API详解

    最后,"EXT核心API详解(七)-Ext.KeyNav KeyMap JSON Format DelayedTask TaskRunner TextMetrics XTemplate.txt"涵盖了键盘导航(KeyNav)、键映射(KeyMap)等高级交互功能,JSON格式处理,延迟任务(DelayedTask)...

    extapi

    最后,"EXT核心API详解(七)-Ext.KeyNav KeyMap JSON Format DelayedTask TaskRunner TextMetrics XTemplate.txt"涉及键盘导航(KeyNav)、键映射(KeyMap)、JSON格式化、延迟任务(DelayedTask)、任务调度器...

    extjs实例说明详解

    在“EXT核心API详解(七)-Ext.KeyNav KeyMap JSON Format DelayedTask TaskRunner TextMetrics XTemplate.txt”中,你将学习如何响应键盘事件,创建友好的用户交互。 9. **JSON Format, DelayedTask, TaskRunner, ...

    EXT核心API详解.doc

    EXT核心API详解主要涵盖了一系列与EXT.js库相关的类和对象,EXT.js是一个强大的JavaScript UI框架,用于构建富客户端Web应用程序。以下是对各个类的详细解释: 1. **Ext类**:EXT库的基础类,提供了许多实用的方法...

    EXTJS___API详解

    19. **Ext.util.DelayedTask 和 Ext.util.TaskRunner 类**:用于定时任务的执行,DelayedTask用于延迟调用,TaskRunner用于周期性任务。 20. **Ext.util.TextMetrics 类**:测量文本在DOM中的尺寸,常用于动态调整...

    EXTJSWL********

    以上就是EXTJSWL相关的核心API详解,它们涵盖了EXTJS中对于事件处理、键盘导航、数据交换、定时任务、文本测量以及元素操作和动画的重要方面。理解并熟练掌握这些知识点,对于开发EXTJS应用程序至关重要。

Global site tag (gtag.js) - Google Analytics