Extjs4.1 Ext.util工具包详解

一、Ext.util.CSS

概述:有效的控制样式表,可以多台的删除修改以及交换

主要方法:

1.createStyleSheet创建一个css样式在head中的标签

2.getRule根据类名得到一个CSSRule的对象

3.swapStyleSheet引入一个css样式文件并指定ID

4.removeStyleSheet用指定的id来删除一个样式

5.update修改样式表中的属性值

代码实现以及注释说明:

//1.createStyleSheet(StringcssText,String id) :StyleSheet 创建一个css样式在head中的标签

Ext.util.CSS.createStyleSheet(".c{color:red}","red");

Ext.get("d1").addClsOnOver("c");

//2.getRule(String/Arrayselector,Boolean refreshCache)根据类名得到一个CSSRule的对象,对象可以获取到里面指定属性

varcssobj=Ext.util.CSS.getRule(".c",true);

alert(cssobj.style.color);

//3.swapStyleSheet(Stringid,String url) 引入一个css样式文件并指定ID,交换样式表,将会把此样式表引入的数序靠前。多用于皮肤切换

vari=1;

Ext.get("b1").on("click",function(){

if(i%2==0){

Ext.util.CSS.swapStyleSheet("one","lession10/one.css");

Ext.get("d2").addClsOnOver("col");

i++;

}else{

Ext.util.CSS.swapStyleSheet("two","lession10/two.css");

Ext.get("d2").addClsOnOver("col");

i++;

}

});

//4.removeStyleSheet(Stringid) 用指定的id来删除一个样式

Ext.get("b2").on("click",function(){

Ext.util.CSS.removeStyleSheet("red");

});

//5.updateRule(String/Arrayselector,String property,String value) :Boolean 参数为类名、属性名、值

Ext.get("b3").on("click",function(){

Ext.util.CSS.updateRule(".c","color","#990055");

});

二、Ext.util.ClickRepeater

概述:单机一次,如果不失去焦点。系统自动会去请求 主要用于挤房器和网络忙的时候请等待的功能

直接实例化这个类,第一个参数为 组件的元素对象,第二个为配置对象

delay 首次单机时候的间隔时间

interval发生首次重复事件调用之后每一次事件的间隔时间

stopDefault停止这个el上的默认单机事件

handler执行的动作

//控制元素在指定时间内被单机(如果元素没有失去焦点)

//第一次单击马上会触发事件,如果不去点击其他的元素那么3秒后会自动执行第二次

//以后会以4秒的间隔执行相应的程序

varc1=new Ext.util.ClickRepeater(Ext.get("b4"),{

delay:3000,//首次单机时候的间隔时间

interval:4000,//发生首次重复事件调用之后每一次事件的间隔时间

stopDefault:true,//停止这个el上的默认单机事件

handler:function(){

alert("单机我");

}

});

三、Ext.util.DelayedTask

概述:在规定的时间之后调用函数

创建对象指定一个function为参数

主要方法:delay 参数执行时间, 表示多少时间后触发该对象的函数

cancel移除正在等待的最后一个函数

代码:

//实例化对象,并传入一个可执行的函数为参数

varc1=new Ext.util.DelayedTask(function(){

alert("-------");

});

Ext.get("b5").on("click",function(){

c1.delay(2000);//在2秒后调用,也可以传入第二个参数,参数为执行函数。

c1.cancel();//移除在最后等待的事件

});

四、Ext.util.Format

格式化表示数值和日期等

主要方法:

1.ellipsis当超过位超过指定值时,用...来表示

2.capitalize将首字母变为大写, 一般用于得到它的set和get方法的时候常用

3.date格式化输出日期,第一个传入日期对象, 第二个传入格式

4.substr截取字符串操作

5.lowercase将所有大写转化为小写

6.number讲数值以一定的格式去输入,因为各国的数值表示不同

7.nl2br将JS中的换行\n解析成<br>标签

代码实现:

varstr="marcio_zhang@163.com";

//1.ellipsis()参数第一为字符串,第二个为当超过位超过此值时,用...来表示

alert(Ext.util.Format.ellipsis(str,10));

//2.capitalize()将首字母变为大写, 一般用于得到它的set和get方法的时候常用

alert(Ext.util.Format.capitalize(str));

//3.date()格式化输出日期,第一个传入日期对象, 第二个传入格式

alert(Ext.util.Format.date(newDate(),"Y年-m月-d日"));

//4.substr截取字符串操作

alert(Ext.util.Format.substr(str,0,5));

//5.lowercase将所有大写转化为小写

alert(Ext.util.Format.lowercase("MARICO"));

//6.number讲数值以一定的格式去输入,因为各国的数值表示不同

alert(Ext.util.Format.number(123123.123123,"0,000.00"));

//7.nl2br将JS中的换行\n解析成<br>标签

alert(Ext.util.Format.nl2br("marico\nzhang"));

五、Ext.util.MixedCollection对象集合类

概述:可以增加对应的键值对,相当于java的一个Map集合,适合做缓存和静态常量,方便管理

主要方法:

1.集合类的add(String key,Object o) 添加一个对象到集合类中,也可以在第一个参数指定的相应的key值

2.addAll(Object/Arrayobjs)方法。 增加一个数组或者一个集合类

3.clear方法 移除里面所有的对象

4.clone克隆 等于复制对象

5.判断集合中是否有相应的对象 contains(Objecto) containsKey(String key) 返回一个boolean值

6.each(functionfn,[Object scope]) :void 遍历这个集合类

7.从集合中得到单个的对象

get(String/Numberkey): Object 根据key得到指定的对象

first()得到集合类中的第一个对象

8.集合的有关事件 当执行add,clear,remove,replace方法的时候可以指定触发的事件,可以on方法来指定

事件,参数一为执行什么操作,第二个是函数,函数参数第一个为这个对象的坐标,第二个为这个对象,第三个为

这个对象key值

代码实现:

//1.集合类的add(String key,Object o) 添加一个对象到集合类中,也可以在第一个参数指定的相应的key值

varitem1=new Ext.util.MixedCollection();

vara={name:'a'};

varb={name:'b'};

item1.add("01",a);

item1.add("02",b);

//alert(item1);

//2.addAll(Object/Arrayobjs)方法。 增加一个数组或者一个集合类

vararr=[a,b]

varitem2=new Ext.util.MixedCollection();

item2.addAll(arr);

//alert(item2);

//3.clear方法 移除里面所有的对象

item2.clear();

//alert(item2);

//4.clone克隆 等于复制对象

varitem3=item1.clone();

//alert(item3);

/*

* 5.判断集合中是否有相应的对象

* contains(Object o): 返回一个boolean值

* containsKey(String key):Boolean

* */

//alert(item3.contains(a));

//alert(item3.containsKey("01"));

//6.each(functionfn,[Object scope]) :void 遍历这个集合类

item1.each(function(item){

//alert(item.name);

});

//7.从集合中得到单个的对象

//get(String/Numberkey): Object 根据key得到指定的对象

//first()得到集合类中的第一个对象

//alert(item1.get("01").name);

//alert(item1.get(1).name);

//alert(item1.first().name);

//8.集合的有关事件

//add,clear,remove,replace

item1.on("add",function(index,o,key){

alert("集合item1有了一个新的成员:"+key);

});

item1.add("03",{name:"c"});

六、Ext.util.TashRunner

概述:主要操作的为线程,可以实现线程的运行和停止,多个线程之间互不影响,与java中的多线程机制相似

1.实例化一个Ext.util.TaskRunner类的对象

2.定一个线程的对象 里面指定属性:

run指定的为function,表示线程开启后执行的函数

interval指定的为一个时间数,表示每隔多少事件执行run指定的函数

3.调用start方法开启线程 传入的一个线程的对象

4.调用stop方法停止线程,传入的是需要停止的那个线程的对象

varrunner=new Ext.util.TaskRunner();

vartask={

run:function(){

Ext.getDom("input").value=Ext.util.Format.date(newDate(),"Y-m-d-s");

},

interval:1000

};

runner.start(task);

Ext.get("b6").on("click",function(){

runner.stop(task);

});

posted @ 2012-11-24 14:56  Kane_BJ  阅读(568)  评论(0编辑  收藏  举报