国内第一本EXTJS源码分析作品

为了满足读者先睹为快,赶紧熟悉下EXTJS,在这里首发2个完整的章节,希望通过这些章节,能够让更多人了解EXTJS。本书估计会在2009年12月份由电子工业出版社发行,欢迎广大朋友在阅读了样章之后,能够给出中肯的评价,谢谢。你们的肯定,是我们往前行动的力量。随后,我们还会有作者访谈方面的信息会在这里公布出来,也请大家期待。本书从2008年就开始了,中间整整跨越一个年度,作者和编辑都为此倾注了大量的心血。本着不断完善,尽善尽美的心理,我们出版这本书。也为此熬了很多个夜晚。正如作者所言,写书是很辛苦也很枯燥的事情。编辑这本书同样也是很辛苦,但是有乐趣的事情。因为,看到这样一本文字和技术上都堪称不错的书,在自己的手中诞生慢慢改进,逐步完善,心情还是愉悦的。作为国内第一本源码分析的书,相信会给各位读者带去一种全新的体验。我们会以开放的心态欢迎您的肯定、批评、建议或者意见。

-------------------------
第1章 WEB如此美丽,初探Ext JS.pdf 免费下载
http://www.brsbox.com/filebox/down/fc/be5c2f32adc613952812c5e5861d0080
第2章 Ext JS 3.0实例入门.pdf 免费下载
http://www.brsbox.com/filebox/down/fc/c4a7d0276779e3d981eabdc8dcda3ef2
-------------------------



-------------------------
背景说明
-------------------------



ExtJS向来以绚丽的应用了广大的开发者,广大的用户对体验的要求也是越来越高。在用户至上的需求推动下,作为开发者审时度势,学习和掌握这门当红技术无疑在当前经济危机下显得更重要。谁能真正地打动客户,谁能真正地说服老板,谁能真正地把握技术方向,这是每个怀有梦想的开发者和对未来充满憧憬年轻人所必须面对的。因为当你真正成为一个技术强者的时候,您也就离技术核心圈越来越近,这时您就拥有了核心竞争力了。而核心竞争力的取得是需要大量的积累,并不是简单学会ExtJS就可以的,我们还是需要沉寂下来,做到板凳N年冷,学会向优秀者学习,学会把握大方向。

以上的一切都需要脚印去覆盖,需要不断地总结与反思。有人说技术是一阵风,吹过了,不留下一丝痕迹。作为提高用户体验的ExtJS技术,是如此的完美,我们在庖丁解牛,分解开她的源码,我们惊奇地发现,这一切是如此的美丽——代码之美。这就激发了我们去刨根问底地去分析,去理解,去重构,去封装,最后形成自己风格的应用。随着ExtJS应用的普及,我们会惊奇地发现,有用户开始审美疲劳了,也有开始新的抵触情绪了。这就如同ExtJS刚刚出生的宝宝一样,也遭遇到一些抵制 ,诟病她的雍容华贵。但是,留言还是挡住不她前进的步伐。

面对ExtJS开发出来的应用是如此的雷同,如此的千人一面,用户审美疲劳是个真实的现状么?这个背后的隐藏的故事是什么?其实,最终的原因还是开发者没有真正掌握ExtJS强大的功能,只是学会了简单的搭积木而已。这一切,对于上进的您,是远远不够的,我们需要深入到源码,读懂美妙的ExtJS代码,要自己开发组件,要自定义绚丽的应用,要人有我优,要向自由王国的顺利过渡。

在2008年初的时候,我们就开始构思如何真正深入到ExtJS本源,真正能够分析架构,讲解在开发中能够快速应用的教程。而选择这方面的定位,我们就需要走更长的路,需要把源码真正地读懂,读透。而这一些需要时间,需要实践,需要大量的积累。在写作过程中,我们听取了大量的意见,做了多次的修改调整。经过1年多熬夜奋战,这本书总算呈现在读者面前,这本书把对于一般人而言类似天书的ExtJS源码,做了细致地分解和注释解读,天使就这样降临人间了,当然是正常落地的,而不是脸蛋先着地的。天使在人间,就是盼望着,美好的东西能够长久地流传下去,能够不断分享。因为这个世界太需要力量和美,本书就是竭力呈现代码的力量和美。
当您翻开这本书的时候,也就开始了代码的自由之旅,开始了代码美之旅,当然,在旅行中您剋发现很多有趣的景点,采撷起来,串起来,那就是比珍珠还珍贵的灵感启迪.

------------------------------------------
前言
-----------------------------------------



ExtJS是一个非常优秀的javascript框架,不但能方便地实现优美绚丽的Web应用系统,而且其源码架构的设计及实现令人叫绝。任何一种优秀技术都会有一批布道者去分析研究并推广它,ExtJS也不例外。

但是ExtJS结构过于庞大,大多开发者只能是对着ExtJS的应用文档依葫芦画瓢地开发应用系统。这样一知半解的开发方式,会导致开发中出现众多问题,比如性能,效率等等。而目前市场上ExtJS的书籍都仅仅停留在介绍其应用,没有讲解ExtJS的实现原理及内部运行机制,但是这个对开发者来讲非常重要。

不是没有人去分析ExtJS的源码,但其源码架构宏伟,所需知识众多,开发者在阅读其源码时一般都是一知半解,而市面上却没有这方面的资料。笔者也是ExtJS源码分析大军中一员,在解读其源码之后那种兴奋和快乐,让自己觉得应该把它分享出去。

于是在Blog中写了零散的源码分析文章,但是发现这样效果并非很好,读者还是很难去深入,这样就萌发了把这一系列的文章形成完整体系,让开发者能深入了解ExtJS源码机制及实现并能将ExtJS最佳应用。

最高境界的读书是厚积薄发,这是对读者的要求,而其背后也隐含着对写者的要求,如何引导读者厚积薄发,这本是就应该是写者的义务。一本书的内容从其定下主旨开始就是浑然天成的整体,如东家之子,增之一分则太长,减之一分则太短。内容的多寡与缺失都失去它的完整性和艺术性。

为了达到这个目的,本书的内容无论从那个角度来看都应该是一条线串联着的。本书是ExtJS源码分析书,它把整个ExtJS的源码采用coreàelementàcomponent三个单词来串联。本书是ExtJS应用书,它采用网络办公系统实例应用贯穿着整本书的知识点。

读者可以从这条线出发,慢慢地扩展细化,最终到扩展到整个ExtJS体系。还可能通过整个ExtJS体系慢慢地收缩归纳,最终薄发到这条线上来。本书从内容的编排上也是一条线,它分成四个篇章,每个篇章都着相关的章节。这四部分是Introduction(入门)、Core(核心)、Element(元素)、Component(组件)。通过这几部分,读者不仅能应用ExtJS进行开发,而且还能了解其工作原理和机制,知其然知其所以然。

写书是一项枯燥乏味的工作,但也是一种痛并快乐着的孕育过程。快乐的源泉来自读者的肯定。作者夜以继日的工作,最大目的就是为了交给读者一份最满意的技术书。但是ExtJS源码涉及的领域广泛,同时作者水平有限,书中难免有一些不足之处。恳请广大读者批评指正,并发email到sharepub@126.com与我们联系。


主要内容

全书分为4篇,共17章。具体的篇章内容如下所示:

第1篇入门篇,包括1~2章。入门篇是对ExtJS进行一个整体的概述,让读者从宏观上把握整个ExtJS。它包含宏观概述和入门案例两章,第一章是通过理论性的图表及文字去概述整个ExtJS及其相关体系结构。而第二章则是带领着读者,通过实现一个案例来纵览整个ExtJS的功能应用。读者不但能从理论上把握ExtJS,还能从实例中去了解整个ExtJS。

第2篇是核心篇,包括3~6章。核心篇介绍了ExtJS的核心基础知识。该篇包含一个机制,两个模型,六个扩展。机制指的是事件机制,ExtJS事件不仅扩展了浏览器的事件机制,同时还采用观察者模式构建组件事件机制,这个在第四章中介绍。两个模型分别指是模板模型和数据模型,ExtJS的显示模块化和数据分离化通过这两个模型完成的,它们分别在第5,6章介绍。六个扩展指的是ExtJS对Javascript中类、函数、字符串,日期、数组及定时任务进行了扩展,这个在第三章介绍。

第3篇是元素篇,包括7~10章。元素篇介绍了ExtJS元素的相关知识,ExtJS元素对浏览器DOM元素进行了扩展,它有三个基本应用和两个效果。三个基本应用分别指的是元素操作,元素查找和元素样式。这部分在第7,8章中讲解。两个效果分别指的是动画特效和拖曳实现。在第9,10章中深入浅出地分析了它们的原理、机制及扩展应用。

第4篇是元素篇,包括11~17章。组件篇是ExtJS的重点,所有应用都是围绕着组件,学好ExtJS,必须要学好组件。该篇分成一个布局、两个模型、四大组件。布局用来进行页面内容排列,ExtJS在“Div+CSS”及Table布局的基础上提供更高级的布局方式,这部分在第13章中讲解。两个模型指的是组件模型和容器模型。所有组件都遵循组件模型,拥有组件的生命周期,这部分内容在第11章讲解。容器模型用来构建存放和布局组件的容器,这部分内容在第12章中讲解,ExtJS的四大组件指的是Form组件、Grid组件、Tree组件、Menu组件,在第14-17章中进行分析讲解。

首先这是一本源码分析书籍


源码分析不是简单地在其源码中标上注释,然后贴到书上充内容,本书的源码分析首先是从其机制,原理或流程入手,带着读者手动实现该原理或机制,之后一步一步引入到ExtJS中的源码实现。接着对ExJS源码不足之处提出现解决方案并进行扩展或实现。

次这是一本ExtJS应用书籍


本书与一般的ExtJS入门书籍不同,没有提供ExtJS文档已经自带的实例,而是覆盖了其它ExtJS书籍中的盲点。每章中在讲完ExtJs原理之后,都结合本章的知识点,扩展了或实现综合性案例,而该实例都可以作为办公系统中的一部分。这样读者就可以通过办公系统来串通过整个应用。这些综合实例的编写采用迂回连续的方式,首先深入应用本章知识,之后还会引入后面章节的知识点的应用,这样就读者进入了应用--原理机制—深入的良性循序渐进的过程中。

再次这是一本深入JS技术书籍


ExtJS源码分析需要要用到JavaScript知识,《JavaScript权威指南》是一本权威的入门书籍。本书与它不足,通过ExtJS源码来讲解JavaScript的技术重点与难点,这样读者就有很直观的感觉,且能达到事半功倍的效果。对于JavaScript知识,本书没有讲解那些简单的语法等,而是去深入分析其它书籍没有讲到的技术盲点。

最后这是一本ExtJS扩展书籍


本书是站在一定高度去分析ExtJS源码,提出现源码中的不足,并提出很多解决方案,每种解决方案都提高扩展成组件的形式,读者只要可以直接使用。

谁适合看这本书


1. 本书适合所有具备一定HTML和CSS基础,但不具备任何Ext JS基础的初学者阅读。这部分读者能通过本书迅速掌握Ext JS的基础知识和基本操作,从而迅速地将Ext JS用到实际开发中去。

2. 本书适合所有具备一定Ext JS开发基础的中高级读者阅读。这部分读者能通过本书全面了解Ext JS的架构与设计原理,从而提高自己应用Ext JS的水平,最终开发出更炫丽、高性能的Ext JS应用。

3. 本书适合所有立志于开发出属于自己的Ajax框架的高级开发者。本书深刻揭示了Ext JS的架构与设计原理,其思想可供这部分读者参考和借鉴。

----------------------------------------
目 录
---------------------------------------


第1部分 快速入门 1
第1章 Web如此美丽,初探Ext JS 2
1.1 Ext JS是什么 2
1.2 为什么选择Ext JS 3
1.3 如何学习Ext JS 5
1.3.1 获取源码并部署 5
1.3.2 开发工具的智能提示 5
1.3.3 文档和实例的学习 8
1.3.4 学习论坛 9
1.4 Ext JS体系结构 9
1.4.1 体系结构 9
1.4.2 文件结构 11
1.5 小结 13
第2章 Ext JS 3.0实例入门 14
2.1 准备工作,配置环境 14
2.2 看似简单的登录页面,隐藏好大的学问 15
2.2.1 页面布局 16
2.2.2 表单布局 18
2.2.3 验证码 20
2.2.4 表单验证 21
2.2.5 表单提交 22
2.3 主框架页面 24
2.3.1 主框架页面布局 26
2.3.2 左边导航菜单 28
2.3.3 右边工作区域 30
2.4 子页面 32
2.4.1 数据处理 32
2.4.2 列表 34
2.5 小结 35
第2部分 核心技术 37
第3章 Ext JS核心基础 38
3.1 继承的扩展 38
3.1.1 对象的继承 38
3.1.2 类的继承 39
3.1.3 Ext.extend扩展 40
3.2 函数的扩展 42
3.2.1 从一个错误说起 42
3.2.2 函数的委托 43
3.3 数组及集合 44
3.3.1 JavaScript数组 45
3.3.2 Ext JS集合操作 46
3.4 String的转换 50
3.4.1 String转换的基本知识 50
3.4.2 String和JSON转换 50
3.4.3 查询字符串与对象转换 52
3.5 Date的使用 53
3.5.1 日期格式化 53
3.5.2 日期的比较及计算 55
3.6 定时任务 56
3.6.1 有状态的定时任务管理 56
3.6.2 定时任务管理器 58
3.7 小结 60
第4章 你必须知道的Ext JS事件机制 61
4.1 浏览器事件机制 61
4.2 Ext JS元素事件 63
4.2.1 Event对象 63
4.2.2 EventManager 67
4.3 基本事件扩展 71
4.3.1 DomReady处理 71
4.3.2 快捷键的实现 72
4.3.3 导航键的实现 74
4.3.4 鼠标按住事件 75
4.4 Ext JS组件事件 76
4.4.1 事件对象 77
4.4.2 组件的事件机制 78
4.4.3 基于拦截的事件实现 81
4.4.4 组件及元素事件结合 83
4.5 扩展TabBox事件 84
4.5.1 焦点 84
4.5.2 扩展TabBox导航 85
4.5.3 自定义TabBox事件 87
4.6 小结 89

第5章 模板模型,组件开发的基石 90
5.1 Ext JS模板概述 90
5.2 正则表达式基础 91
5.2.1 正则表达式引擎 91
5.2.2 字符匹配 93
5.2.3 选择、分组及引用 95
5.3 正则表达式的使用 97
5.3.1 exec和match 97
5.3.2 replace函数 97
5.4 基本模板 99
5.4.1 模板的构建 99
5.4.2 应用动态数据 100
5.4.3 编译模板 101
5.5 扩展模板 103
5.5.1 实现原理 104
5.5.2 编译Xtemplate模板 107
5.5.3 为Xtemplate应用动态数据 110
5.6 模板问题及改进 110
5.6.1 模板的问题 110
5.6.2 问题的解决 112
5.7 通信录的实现 114
5.7.1 应用DataView 115
5.7.2 数据分页和过滤 117
5.7.3 通信录中的信息 118
5.8 小结 119
第6章 改善用户体验,交互数据模型 120
6.1 Ajax请求 120
6.1.1 从网络通信协议开始 120
6.1.2 手动实现Ajax 123
6.1.3 便利函数让调用更加方便 126
6.1.4 表单请求 127
6.1.5 跨域请求 131
6.2 Direct请求 134
6.2.1 Comet请求 134
6.2.2 RPC请求 137
6.3 代理请求 141
6.3.1 REST风格 141
6.3.2 代理请求的处理过程 142
6.3.3 MemoryProxy的扩展 145
6.4 数据解析的实现 147
6.4.1 定义表结构 147
6.4.2 解析表数据 152
6.4.3 数组解析的扩展 156
6.5 数据回写 157
6.5.1 组装请求参数 157
6.5.2 保存之后更新 159
6.6 数据存储 160
6.6.1 构建Store对象 160
6.6.2 载入数据 162
6.6.3 保存数据 164
6.7 DWR数据交互 166
6.7.1 DWR请求扩展 167
6.7.2 DWR数据解析 169
6.7.3 CRUD操作 171
6.8 小结 172
第3部分 基于元素的开发 173
第7章 元素扩展,让开发更灵活 174
7.1 Ext. DomHelper类 174
7.1.1 元素创建 174
7.1.2 元素插入 175
7.2 Ext.DomQuery类 178
7.2.1 实现原理 179
7.2.2 查询及过滤实现 180
7.2.3 编译解析 182
7.3 Ext JS元素架构 185
7.3.1 Ext.Element元素 185
7.3.2 Ext.CompositeElementLite 187
7.4 表单实例 189
7.4.1 实现并载入表单 189
7.4.2 计算相关费用 191
7.5 小结 195
第8章 Ext JS样式的完美应用 196
8.1 样式基本操作 196
8.1.1 创建元素 197
8.1.2 元素定位 198
8.1.3 可视及其他 199
8.2 JS操作样式 200
8.2.1 style的操作 201
8.2.2 class的操作 203
8.2.3 动态加入CSS Rules 204
8.2.4 重构它们 206
8.3 Dimensions操作 207
8.3.1 宽高操作 208
8.3.2 坐标定位操作 211
8.3.3 重构它们 214
8.4 相对定位与约束 215
8.4.1 元素相对定位 216
8.4.2 scroll定位 219
8.4.3 Resize元素定位的实现 220
8.5 ImageCropper的实现 224
8.5.1 创建容器 225
8.5.2 创建三层图片并载入 226
8.5.3 初始化Resize和拖曳 227
8.5.4 显示选择内容 229
8.6 小结 231
第9章 让Web页面动起来 232
9.1 动画的原理 232
9.1.1 原理实现 232
9.1.2 改进的实现 234
9.2 Ext JS动画实现 237
9.2.1 Ext JS动画管理器 237
9.2.2 动画对象 238
9.3 动画的进一步深入 243
9.3.1 动画类型 243
9.3.2 动画算法 247
9.3.3 Fx特效处理 251
9.4 扩展Ext JS矢量图 254
9.4.1 excanvas基本应用 254
9.4.2 excanvas高级应用 261
9.5 交互式动画报表图 266
9.5.1 基本折线图 266
9.5.2 动画的实现 273
9.5.3 交互式选择的实现 275
9.5.4 ToolTip的实现 279
9.6 小结 282
第10章 拖曳技术,让用户也动起来 283
10.1 Ext JS拖曳原理剖析 283
10.1.1 如何选中元素 283
10.1.2 如何实现鼠标移动位置 284
10.1.3 如何确定元素目标位置 285
10.2 Ext JS拖曳架构 285
10.2.1 拖曳共性处理 285
10.2.2 拖曳个性处理 289
10.3 拖曳形式的选择题应用 297
10.3.1 选择题的实现 297
10.3.2 选项拖曳的实现 299
10.4 拖曳高级扩展 303
10.4.1 拖曳元素状态处理 304
10.4.2 目标元素状态处理 306
10.4.3 把拖曳目标和拖曳元素综合起来 311
10.5 拖曳定制流程 315
10.5.1 基本的流程图 315
10.5.2 拖曳的实现 319
10.5.3 拖曳的完善 324
10.6 小结 327
第4部分 深入组件的开发 329
第11章 Ext JS组件模型的架构解析 330
11.1 认识Ext JS组件 330
11.2 生命周期设计 332
11.2.1 初始化 332
11.2.2 渲染表现 334
11.2.3 销毁组件,释放系统资源 335
11.3 可扩展性设计 337
11.3.1 类继承的支持 337
11.3.2 事件的支持 337
11.3.3 插件的支持 338
11.3.4 可配置的支持 338
11.3.5 模板方法的支持 339
11.4 可管理性设计 339
11.4.1 全局统一管理 339
11.4.2 组件类别管理 340
11.4.3 内部状态管理 340
11.5 组件分析法 343
11.5.1 生命周期分析 343
11.5.2 配置项分析 345
11.5.3 方法及属性分析 345
11.5.4 事件分析 347
11.5.5 组件特性 347
11.6 如何自定义组件 348
11.6.1 组件的需求 348
11.6.2 按生命周期来编写组件 348
11.6.3 重构 349
11.6.4 编写文档 350
11.7 小结 350
第12章 Ext JS面板,信息提示更人性化 351
12.1 浮动层(Layer) 351
12.1.1 shim实现 351
12.1.2 shadow实现 352
12.1.3 约束定位 355
12.1.4 浮动层显示 357
12.2 容器(Container)布局 359
12.2.1 生命周期分析 359
12.2.2 容器特性 361
12.3 面板(Panel)布局 363
12.3.1 面板组成 363
12.3.2 面板样式 367
12.3.3 面板的折叠/展开 370
12.4 窗体(Window)布局 372
12.4.1 最大最小化 372
12.4.2 改变大小 375
12.4.3 窗体显示问题 376
12.5 工具提示 377
12.5.1 Ext.Tip类 377
12.5.2 Ext.ToolTip类 378
12.5.3 Ext.QuickTip类 379
12.6 气球提示(BalloonTip) 382
12.6.1 实现BalloonTip组件 383
12.6.2 进一步完善 388
12.7 小结 393
第13章 Ext JS 华丽的容器布局 394
13.1 认识布局的流程 394
13.1.1 布局概述 394
13.1.2 布局的流程 395
13.2 Border布局 397
13.2.1 如何渲染 398
13.2.2 如何计算布局区域 399
13.2.3 如何实现折叠与展开 402
13.3 锚定位布局 405
13.3.1 AnchorLayout布局 405
13.3.2 AbsoluteLayout布局 407
13.3.3 FormLayout布局 408
13.4 自适应布局 409
13.4.1 FitLayout 410
13.4.2 AccordionLayout 410
13.4.3 CardLayout 412
13.5 表行列布局 413
13.5.1 ColumnLayout 413
13.5.2 RowLayout 414
13.5.3 TableLayout 415
13.6 Box布局 418
13.7 如何扩展TableFormLayout 420
13.8 小结 422
第14章 Ext JS Form的交互式表单 423
14.1 FormPanel聚散地 423
14.1.1 Form关系图 423
14.1.2 与BaseForm关联 425
14.1.3 与Field关联 426
14.1.4 验证操作 427
14.1.5 数据处理 429
14.1.6 FieldSet 433
14.2 Field组件 434
14.2.1 Field的创建 435
14.2.2 Field的验证 436
14.3 文本输入组件 438
14.3.1 单行文本输入组件 438
14.3.2 多行文本输入组件 441
14.3.3 文本编辑组件 442
14.4 选择组件 447
14.4.1 单个选择组件 447
14.4.2 选择组 448
14.5 下拉组件 452
14.5.1 TriggerField 452
14.5.2 Combox 454
14.5.3 多选组件扩展 459
14.6 注册页面的实现 465
14.6.1 基本的Form组件应用 465
14.6.2 上传处理 468
14.7 小结 471
第15章 Ext Grid组件让数据更直观 472
15.1 认识Ext JS 的Grid 472
15.1.1 概述 472
15.1.2 如何创建GridPanel 473
15.1.3 GridPanel如何运行 474
15.1.4 可编辑的GridPanel 476
15.2 列模式 480
15.2.1 CM分析 480
15.2.2 CM的高级应用 482
15.3 选择模式 485
15.3.1 RowSelectionModel 485
15.3.2 CheckboxSelectionModel 488
15.4 视图 489
15.4.1 Grid生成HTML内容 489
15.4.2 如何构建表结构 491
15.4.3 导入数据 495
15.4.4 通过流程进一步分析 497
15.5 分页栏 499
15.5.1 载入数据进行显示 500
15.5.2 请求数据 501
15.6 对Grid的改进 502
15.6.1 下拉框编辑的问题 502
15.6.2 嵌套表格的问题 505
15.6.3 多表头操作 507
15.7 单元格实现跨列运算 509
15.7.1 单元格多选模式 510
15.7.2 公式统计计算 512
15.7.3 应用实例 515
15.8 小结 516
第16章 深入Ext JS 的树形展示 517
16.1 树组件的原理 517
16.2 Ext JS树组件的分析 519
16.2.1 树的创建 520
16.2.2 树的生命周期分析 520
16.3 树组件节点 522
16.3.1 基本节点 522
16.3.2 TreeNode类 523
16.4 树组件的事件 529
16.4.1 事件的流程 529
16.4.2 事件的选择模式 532
16.5 完善树的功能 533
16.5.1 树的数据 533
16.5.2 编辑、过滤及排序 536
16.6 ECOTree的实现 540
16.6.1 树的基本实现 541
16.6.2 节点的实现 547
16.6.3 折叠、编辑、拖曳及其他完善 550
16.7 小结 554
第17章 基于Ext JS Menu组件的快速开发 555
17.1 Action类 555
17.1.1 Action类的作用 555
17.1.2 Action类的运行流程 556
17.2 Button类 558
17.2.1 生命周期 558
17.2.2 样式处理 559
17.2.3 状态切换 560
17.3 开发个性的工具栏 562
17.3.1 如何解析工具项 562
17.3.2 如何进行布局 563
17.3.3 竖形工具栏的实现 566
17.4 自己来设计菜单栏 568
17.4.1 菜单的显示 568
17.4.2 菜单的动作 570
17.5 类UE编辑器的实现 572
17.5.1 基本的编辑器 572
17.5.2 活动工具栏 574
17.6 小结 577
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值