`
kuru
  • 浏览: 140695 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

[转载]EXT核心API详解(七)

阅读更多
[转载]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("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核心API详解 EXT核心API详解

    EXT核心API详解下载

    EXT核心API详解下载 EXT核心API详解下载

    EXT核心API详解.chm

    是EXT核心API详解

    Ext API详解 Ext API详解

    Ext API详解 Ext API详解 Ext API详解

    EXT核心API详解 19章

    EXT核心API详解是一份深入解析EXT库核心技术的教程,共分为19个章节,涵盖了EXT库的各个方面。EXT是一个基于JavaScript的用户界面库,它提供了一套完整的组件模型,用于构建富互联网应用程序(RIA)。EXT API是EXT库...

    Ext API详解--笔记

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

    EXT核心API详解(第一部分)

    EXT核心API详解(第一部分)将涵盖以下几个关键概念: 1. **Ext类**:EXT JS的核心类库始于`Ext`对象,它提供了许多基础功能,如事件处理、动画效果和实用工具方法。`Ext.ClassManager`负责类的创建和管理,允许...

    整理的Ext API详解

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

    EXT核心API详解.doc

    EXT核心API详解主要涵盖了一系列用于构建富客户端应用的JavaScript库函数和方法。这些API提供了丰富的功能,包括元素操作、事件处理、数据序列化与反序列化、类继承以及组件管理等。以下是对EXT核心API中提及的一些...

    Ext2 核心 API 中文详解

    Ext2 核心 API 中文详解 Ext2 核心 API 中文详解 Ext2 核心 API 中文详解 Ext2 核心 API 中文详解 Ext2 核心 API 中文详解Ext2 核心 API 中文详解Ext2 核心 API 中文详解Ext2 核心 API 中文详解Ext2 核心 API 中文...

Global site tag (gtag.js) - Google Analytics