`
1111111111111
  • 浏览: 6674 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

网上找到的关于Ext的一些入门资料

阅读更多

 

ExtJS入门之一 类与继承

在项目中使用ExtJS 已经有一段时间了, 对于这个庞大的Script 类库有了一定的了解, 在Ext 的使用上也有了一定的经验, 现将这些经验做一下总结, 作为一个入门材料给大家分享。 对于Ext 库, 不要被它的庞大所吓倒, 只要静下心来看SDK , 多做一些练习, 还是很容易上手的。

ExtJS 中的类与继承

  Ext 下, 定义一个JavaScript 类似乎没有什么特别的, 可以直接声明一个构造函数, 并使用关键字new 来进行初始化。 有一点值得注意的是在Ext 中频繁出现的Singleton 类, 普遍定义为:

<!-- [if gte vml 1]><v:shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"> <v:stroke joinstyle="miter"/> <v:formulas> <v:f eqn="if lineDrawn pixelLineWidth 0"/> <v:f eqn="sum @0 1 0"/> <v:f eqn="sum 0 0 @1"/> <v:f eqn="prod @2 1 2"/> <v:f eqn="prod @3 21600 pixelWidth"/> <v:f eqn="prod @3 21600 pixelHeight"/> <v:f eqn="sum @0 0 1"/> <v:f eqn="prod @6 1 2"/> <v:f eqn="prod @7 21600 pixelWidth"/> <v:f eqn="sum @8 21600 0"/> <v:f eqn="prod @7 21600 pixelHeight"/> <v:f eqn="sum @10 21600 0"/> </v:formulas> <v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"/> <o:lock v:ext="edit" aspectratio="t"/> </v:shapetype><v:shape id="_x0000_i1025" type="#_x0000_t75" alt="image_thumb6" style='width:226.5pt;height:89.25pt'> <v:imagedata src="file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\msohtml1\01\clip_image001.png" o:href="http://images.cnblogs.com/cnblogs_com/beginor/WindowsLiveWriter/ExtJS_819F/image_thumb6_3.png"/> </v:shape><![endif]--><!-- [if !vml]-->image_thumb6 <!-- [endif]-->

然后就可以直接调用Foo 的方法了, 其实这段代码可以理解为

<!-- [if gte vml 1]><v:shape id="_x0000_i1026" type="#_x0000_t75" alt="image_thumb9" href="http://images.cnblogs.com/cnblogs_com/beginor/WindowsLiveWriter/ExtJS_819F/image_thumb9_2.png" style='width:228.75pt;height:92.25pt' o:button="t"> <v:imagedata src="file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\msohtml1\01\clip_image003.png" o:href="http://images.cnblogs.com/cnblogs_com/beginor/WindowsLiveWriter/ExtJS_819F/image_thumb9_thumb.png"/> </v:shape><![endif]--><!-- [if !vml]-->image_thumb9 <!-- [endif]-->  

这样,就容易理解了。

谈到类和继承, 有几个函数必须注意, Ext.apply Ext.applyIfExt.extend

  1. Ext.apply(obj, config, [defaults]) config 对象的所有属性都复制到另一个对象obj 上, 第三个参数defaults 可以用来提供默认值, 不过通常指用前两个参数就够了。 这个函数主要用在构造函数中, 用来将配置复制到对象上。
  2. Ext.applyIf(obj, config) Ext.apply 的功能类似, 唯一不同的是, 这个函数只会将config 对象中有, 而obj 对象中没有的属性复制到obj 上。
  3. Ext.extend(subclass, superclass, [overrides]) 用来继承已有的类, 通常的使用方法是

<!-- [if !supportLists]-->4.           <!-- [endif]-->var SubClass = function () {

<!-- [if !supportLists]-->5.           <!-- [endif]-->    SubClass.superclass.constructor .call(this );

<!-- [if !supportLists]-->6.           <!-- [endif]-->};

<!-- [if !supportLists]-->7.           <!-- [endif]-->Ext.extend(SubClass, BaseClass, {

<!-- [if !supportLists]-->8.           <!-- [endif]-->    newMethod : function () {},

<!-- [if !supportLists]-->9.           <!-- [endif]-->    overriddenMethod : function () {}

};

在上面的代码中, SubClass 继承自BaseClass  添加了新的方法newMethod , 重写了overriddenMethod 方法。

 

个人认为, 要扎实的掌握ExtJS , 并且能够对原有类库进行扩展, 掌握以上的方法是必须的, 也是入门的必经之路。

 

 

 

 

ExtJS入门之二 事件

事件是指一个特定的动作,这个动作可以针对HTML 元素的,如keydown,keyup,mouseover, mouseout 等,也可以是对于其它自定义的动作,如对Ajax 异步请求的响应等。在ExtJS 中,该如何处理呢?

1. 处理HTML 元素的标准事件

HTML 元素的标准事件是指mouseovermousedownclickblurfocuschange 等能够直接对HTML 元素发生的事件。在ExtJS 中,这些事件的处理可以用如下的代码:

  • 注册一个事件处理函数使用: Ext.get('myElement' ).on ('click' , myHandler, myScope) myElement 是要注册的元素的 ID click 是事件的名称(注意,和 HTML 元素中的声明 onXXX 不同,这里不需要 on ), myHandler 是处理函数的函数名称, myScope 是一个可选的参数,指定处理函数绑定的对象,也就是处理函数的作用域,如果不提供这个参数,则是默认的 window
  • 撤销一个事件处理函数: Ext.get('myElement' ).un ('click' , myHandler, myScope) 参数的意义同上。

ExtJS 会根据不同的浏览器进行相应的处理,根本不需要理会用户用的是什么浏览器。根据事件的不同,传给处理函数的参数也会不同,这个只能参考ExtJS 的文档了,必要时还得参考源代码。

2. 处理自定义事件

ExtJS 中使用自定义事件,需要从Ext.util.Observable 继承,示例代码如下:

Employee = function

(name

){



   



this

.name

 = name

;

   

this

.addEvents({

      

"fired

" : true

,

      

"quit

" : true



   

});

}

Ext.extend(Employee, Ext.util.Observable, { ... });

在这段代码中,定义了一个Employee 类,定义了firedquit 两个事件。如何触发这两个事件呢,基类 Ext.util.Observable 提供了触发自定义事件的方法fireEvent(eventName, arg1, arg2, ... argn), eventName 是要触发的时间的名称(不区分大小写),后面的参数arg1arg2 等是要传给事件处理函数的参数。用上面的Employee 类做示 例,触发quit 事件:

this

.fireEvent('quit', this

);

这行代码将触发quit 事件,并将Empolyee 类的实例传给quit 事件的处理函数,quit 事件的订阅可以采用如下代码:

function

 myHandler1(empolyee){ ... }

function

 myHandler2(empolyee){ ... }

 

var

 emp = new

 Empolyee('tom');

emp.on('quit', myHandler1);

emp.on('quit', myHandler2);

在上面的代码中,为quit 事件注册了两个处理函数(myHandler1myHandler ),当quit 事件被激发时,将会依次调用myHandler1myHandler2 两个函数。

值得注意的是,不管是HTML 元素的标准事件还是自定义事件,如果为某个时间注册了多个处理函数,如前面的例子,如果myHandler1 返回 false 的话,则会取消在myHandler1 之后注册的处理函数的执行,即该事件被取消,从而停止继续执行该事件的处理函数,而这个返回值false 会作为事件激发的结果,返回给empolyee ,即:

var

 result = this

.fireEvent('quit', this

);

if

 (result === false

) {

   

alert

('event canceled'); //



这里表示事件被某个处理函数取消

}

else

 {

   

alert

('event complete'); // 



这里表示事件执行完毕

}

通过Ext 的自定义事件的机制,可以实现一对多的观察者模式,也可以实现一对一的绑定模式,这一点,在ExtJS 的开发中是很重要的。

 

 

分享到:
评论

相关推荐

    ext_教程 (ext 相 关)

    23085650737.rar可能包含了一些EXT的扩展库或者插件,这些扩展通常由社区开发者提供,增强了EXT的功能。学习如何使用这些扩展,可以让你的应用更具有个性化和特色。 最后,EXT教程.rar很可能是整个教程的综合资源包...

    EXT5.1-API可直接打开

    在EXT5.1中,开发者可以期待找到关于Grid面板、表单、图表、树形视图、布局管理、拖放操作等核心组件的详尽信息。此外,还有关于数据绑定、远程数据加载(AJAX)以及状态管理等方面的指南。 "template.html"文件...

    EXT2.3+EXT2.0教程

    "EXT 中文手册.pdf"是EXT组件库的中文版文档,对于初学者来说是一份宝贵的参考资料。手册通常会详细介绍EXT的安装步骤、基本概念、组件使用方法以及事件处理等核心内容。通过阅读这份手册,新手可以理解EXT的架构,...

    Ext的压缩文件

    3.0版本的用户可能能够找到更多关于此版本的解决方案和最佳实践。 8. **兼容性**:在使用3.0版本时,开发者需要考虑与现有浏览器的兼容性,特别是对于那些较老的浏览器,可能需要额外的polyfill或解决策略。 9. **...

    Ext4.0使用指南

    这篇指南将着重于EXT4.0的基础知识,帮助初学者快速入门EXT JS的开发。 1. **EXTJS基础** - **获取EXTJS**:EXTJS的下载地址为http://extjs.org.cn/,你可以在这里找到EXTJS的发布包以及相关的支持资源。 - **...

    Ext 中文文档 经典

    全面性意味着开发者可以从这里找到关于ExtJS的所有基本知识点,而经典性则意味着这些信息经过了时间的考验,是可靠且实用的。 "入门使用"则说明这套文档适合初学者,它可能包含了一步步的引导,从安装环境到创建第...

    Ext中文API

    在API中,你可以找到关于`Ext.Panel`的所有配置项和方法,如`title`(设置面板标题)和`dockedItems`(在面板边缘添加组件)。 接着,“英文API”是原版的ExtJS英文文档,对于深入理解某些高级概念和技术细节非常有...

    EXT中文手册,ext开发帮手

    EXT中文手册是一个全面的参考资料,涵盖了EXT开发的各个层面,无论你是初学者还是经验丰富的开发者,都能从中找到所需的信息,提升EXT开发技能。通过深入学习和实践,开发者可以充分利用EXT的强大功能,创建出功能...

    extjs实例 入门,提供ext所需要的资源文件,详细叙述怎么改变文件颜色

    本实例将帮助初学者了解如何使用ExtJS入门,并通过提供的资源文件学习如何改变文件的颜色。 首先,我们要明白在ExtJS中改变文件颜色主要涉及到CSS样式和组件的配置。ExtJS的组件如按钮、表格、面板等都可以通过CSS...

    ExtJs学习资料 入门好材料

    在提供的部分内容中,我们可以看到一系列关于Ext.MessageBox的实例,这是一个非常实用的组件,常用于弹出警告、确认和提示对话框。 1. **Ext.MessageBox.alert()**:此方法用于显示一个简单的警告对话框,包含一个...

    ext.net帮助文件

    在EXT.NET帮助文件中,你可以找到以下关键内容: - **入门指南**:介绍如何设置开发环境,以及创建第一个EXT.NET应用程序的基本步骤。 - **组件参考**:详细说明每个组件的属性、方法、事件,以及如何在代码中使用...

    EXT中文手册.pdf

    总的来说,EXT中文手册是一份全面的EXT学习资源,无论你是初学者还是经验丰富的开发者,都能从中找到有价值的指导,提升EXT开发技能。通过阅读和实践手册中的内容,你可以构建出高效、美观且易于维护的Web应用程序。

    Ext.NET.WebForms.4.1.0

    1. **LICENSE**:这是关于软件授权的重要文件,通常包含Ext.NET.WebForms.4.1.0的许可证信息。许可证类型可能会影响如何在商业项目中使用该库,包括是否允许修改、分发以及有无商业用途的限制等。开发者需要仔细阅读...

    EXT-In-FirstStep

    根据给定的文件信息,我们可以提炼出一系列与EXT框架相关的知识点,这些知识点涵盖了EXT的各个方面,从基础到高级应用...无论是初学者还是有经验的开发者,都能从中找到有价值的信息,提升自己在EXT框架下的开发技能。

    Ext开发指南

    Ext开发指南是一本专注于介绍如何使用ExtJS框架进行Web应用程序开发的专业资料。ExtJS是一个流行的JavaScript库,用于构建用户界面,特别是企业级的富互联网应用(RIA)。它提供了丰富的组件库,包括表格、树形视图...

    用ext写的前台源码 有说明文档

    在这个"用ext写的前台源码 有说明文档"的压缩包中,你将找到使用ExtJS框架开发的前端代码,以及相关的JSON数据处理。 在ExtJS中,你可以使用各种组件如表格、面板、表单、树形结构等来构建复杂的UI。这些组件都封装...

    ext js2.3的例子

    在EXT JS 2.3的例子中,你可能会找到以下类型的示例: - **基本组件使用**:如按钮、面板、窗口、表单等基础组件的创建和配置。 - **数据网格**:展示如何使用Grid Panel显示和操作数据,包括分页、排序、过滤等。 ...

    对Ext库的总体概述和完成一些常见的程序任务。新用户应从这里开始

    对于刚接触Ext库的新用户来说,本篇教程将从总体上对Ext库进行概述,并指导如何利用它完成一些常见的程序任务。 #### 二、Ext库的核心特性 - **跨浏览器兼容性**:Ext库支持多种主流浏览器,确保在不同平台上都能...

Global site tag (gtag.js) - Google Analytics