Suche senden
Hochladen
Actionscript中的元编程和开发流程解耦(谈熠)
•
Als PPTX, PDF herunterladen
•
2 gefällt mir
•
791 views
FLASH开发者交流会
Folgen
Melden
Teilen
Melden
Teilen
1 von 31
Jetzt herunterladen
Empfohlen
0320 iOS 入門到實作 客製化地圖
0320 iOS 入門到實作 客製化地圖
碩彥 王
Flash ria usability 刘轩飞
Flash ria usability 刘轩飞
FLASH开发者交流会
Flash基于对象的优化技术 黄炎中
Flash基于对象的优化技术 黄炎中
FLASH开发者交流会
软件工程 第十一章
软件工程 第十一章
浒 刘
Les3
Les3
caviar7571
JavaScript 物件導向觀念入門 v.s. TypeScript 開發實戰 (微軟實戰課程日)
JavaScript 物件導向觀念入門 v.s. TypeScript 開發實戰 (微軟實戰課程日)
Will Huang
Abap oo
Abap oo
vernoo
Dev307
Dev307
建興 王
Empfohlen
0320 iOS 入門到實作 客製化地圖
0320 iOS 入門到實作 客製化地圖
碩彥 王
Flash ria usability 刘轩飞
Flash ria usability 刘轩飞
FLASH开发者交流会
Flash基于对象的优化技术 黄炎中
Flash基于对象的优化技术 黄炎中
FLASH开发者交流会
软件工程 第十一章
软件工程 第十一章
浒 刘
Les3
Les3
caviar7571
JavaScript 物件導向觀念入門 v.s. TypeScript 開發實戰 (微軟實戰課程日)
JavaScript 物件導向觀念入門 v.s. TypeScript 開發實戰 (微軟實戰課程日)
Will Huang
Abap oo
Abap oo
vernoo
Dev307
Dev307
建興 王
TypeScript 開發實戰:開發即時互動的 html5 websocket 聊天室應用程式
TypeScript 開發實戰:開發即時互動的 html5 websocket 聊天室應用程式
Will Huang
软件工程 第九章
软件工程 第九章
浒 刘
Se2009 ch9
Se2009 ch9
浒 刘
無標記擴增實境實驗平台建置與追蹤技術驗證
無標記擴增實境實驗平台建置與追蹤技術驗證
Tehuan Chung
Java Script 引擎技术
Java Script 引擎技术
bigqiang zou
物件導向程式設計課程講義(98 ges hi版)
物件導向程式設計課程講義(98 ges hi版)
Hui-Shih Leng
软件工程
软件工程
bill0077
数据结构(用面向对象方法与C++语言描述第二版)殷人昆编著清华大学出版社
数据结构(用面向对象方法与C++语言描述第二版)殷人昆编著清华大学出版社
pingjiang
信息系统开发平台OpenExpressApp
信息系统开发平台OpenExpressApp
zhoujg
Les 3 ppt
Les 3 ppt
gueste832a8e
Android应用开发 - 沈大海
Android应用开发 - 沈大海
Shaoning Pan
软件工程2010
软件工程2010
fantasy zheng
OOAD with Applications - Chapter 2
OOAD with Applications - Chapter 2
Huan-Lin Tsai
Js培训
Js培训
yiditushe
Js高级技巧
Js高级技巧
fool2fish
通过Struts构建Web应用
通过Struts构建Web应用
yiditushe
Windows 8 apps dev.整理及分享
Windows 8 apps dev.整理及分享
Liyao Chen
Struts Mitac(1)
Struts Mitac(1)
wangjiaz
Unity遊戲設計- 應用Sprite物件
Unity遊戲設計- 應用Sprite物件
吳錫修 (ShyiShiou Wu)
Ecma script edition5-小试
Ecma script edition5-小试
lydiafly
Bambook sdk 与action script
Bambook sdk 与action script
FLASH开发者交流会
Bambook开放之路
Bambook开放之路
FLASH开发者交流会
Weitere ähnliche Inhalte
Ähnlich wie Actionscript中的元编程和开发流程解耦(谈熠)
TypeScript 開發實戰:開發即時互動的 html5 websocket 聊天室應用程式
TypeScript 開發實戰:開發即時互動的 html5 websocket 聊天室應用程式
Will Huang
软件工程 第九章
软件工程 第九章
浒 刘
Se2009 ch9
Se2009 ch9
浒 刘
無標記擴增實境實驗平台建置與追蹤技術驗證
無標記擴增實境實驗平台建置與追蹤技術驗證
Tehuan Chung
Java Script 引擎技术
Java Script 引擎技术
bigqiang zou
物件導向程式設計課程講義(98 ges hi版)
物件導向程式設計課程講義(98 ges hi版)
Hui-Shih Leng
软件工程
软件工程
bill0077
数据结构(用面向对象方法与C++语言描述第二版)殷人昆编著清华大学出版社
数据结构(用面向对象方法与C++语言描述第二版)殷人昆编著清华大学出版社
pingjiang
信息系统开发平台OpenExpressApp
信息系统开发平台OpenExpressApp
zhoujg
Les 3 ppt
Les 3 ppt
gueste832a8e
Android应用开发 - 沈大海
Android应用开发 - 沈大海
Shaoning Pan
软件工程2010
软件工程2010
fantasy zheng
OOAD with Applications - Chapter 2
OOAD with Applications - Chapter 2
Huan-Lin Tsai
Js培训
Js培训
yiditushe
Js高级技巧
Js高级技巧
fool2fish
通过Struts构建Web应用
通过Struts构建Web应用
yiditushe
Windows 8 apps dev.整理及分享
Windows 8 apps dev.整理及分享
Liyao Chen
Struts Mitac(1)
Struts Mitac(1)
wangjiaz
Unity遊戲設計- 應用Sprite物件
Unity遊戲設計- 應用Sprite物件
吳錫修 (ShyiShiou Wu)
Ecma script edition5-小试
Ecma script edition5-小试
lydiafly
Ähnlich wie Actionscript中的元编程和开发流程解耦(谈熠)
(20)
TypeScript 開發實戰:開發即時互動的 html5 websocket 聊天室應用程式
TypeScript 開發實戰:開發即時互動的 html5 websocket 聊天室應用程式
软件工程 第九章
软件工程 第九章
Se2009 ch9
Se2009 ch9
無標記擴增實境實驗平台建置與追蹤技術驗證
無標記擴增實境實驗平台建置與追蹤技術驗證
Java Script 引擎技术
Java Script 引擎技术
物件導向程式設計課程講義(98 ges hi版)
物件導向程式設計課程講義(98 ges hi版)
软件工程
软件工程
数据结构(用面向对象方法与C++语言描述第二版)殷人昆编著清华大学出版社
数据结构(用面向对象方法与C++语言描述第二版)殷人昆编著清华大学出版社
信息系统开发平台OpenExpressApp
信息系统开发平台OpenExpressApp
Les 3 ppt
Les 3 ppt
Android应用开发 - 沈大海
Android应用开发 - 沈大海
软件工程2010
软件工程2010
OOAD with Applications - Chapter 2
OOAD with Applications - Chapter 2
Js培训
Js培训
Js高级技巧
Js高级技巧
通过Struts构建Web应用
通过Struts构建Web应用
Windows 8 apps dev.整理及分享
Windows 8 apps dev.整理及分享
Struts Mitac(1)
Struts Mitac(1)
Unity遊戲設計- 應用Sprite物件
Unity遊戲設計- 應用Sprite物件
Ecma script edition5-小试
Ecma script edition5-小试
Mehr von FLASH开发者交流会
Bambook sdk 与action script
Bambook sdk 与action script
FLASH开发者交流会
Bambook开放之路
Bambook开放之路
FLASH开发者交流会
Introduction to air for android 邱彦林
Introduction to air for android 邱彦林
FLASH开发者交流会
Misato engine hugh_tsai-蔡浩宇
Misato engine hugh_tsai-蔡浩宇
FLASH开发者交流会
Swf文件格式和abc代码混淆工具 黄珏坤
Swf文件格式和abc代码混淆工具 黄珏坤
FLASH开发者交流会
松耦合代码之开发方法与工具演示 刘争辉
松耦合代码之开发方法与工具演示 刘争辉
FLASH开发者交流会
Flash media server 开发经验谈 沈先彬
Flash media server 开发经验谈 沈先彬
FLASH开发者交流会
Flash 独立游戏开发之路 徐黎明
Flash 独立游戏开发之路 徐黎明
FLASH开发者交流会
程序接口的另类理解与使用 孙毅
程序接口的另类理解与使用 孙毅
FLASH开发者交流会
Flash游戏大会 商文烨
Flash游戏大会 商文烨
FLASH开发者交流会
9月18技术交流会大赛作品介绍 廖湘宁
9月18技术交流会大赛作品介绍 廖湘宁
FLASH开发者交流会
简化复杂的Flash应用程序 谈熠
简化复杂的Flash应用程序 谈熠
FLASH开发者交流会
Flash mmorpg游戏引擎及工具开发概述-张明光
Flash mmorpg游戏引擎及工具开发概述-张明光
FLASH开发者交流会
Web base 吴志华
Web base 吴志华
FLASH开发者交流会
Flash 游戏应用框架和模块化开发 邱广钦
Flash 游戏应用框架和模块化开发 邱广钦
FLASH开发者交流会
7月24日交流会麻球演讲 廖湘宁
7月24日交流会麻球演讲 廖湘宁
FLASH开发者交流会
浅析Flash特效开发 陈勇
浅析Flash特效开发 陈勇
FLASH开发者交流会
Flash网络通讯处理 陈苏俊
Flash网络通讯处理 陈苏俊
FLASH开发者交流会
轻量级Flash服务器开发框架(刘恒)
轻量级Flash服务器开发框架(刘恒)
FLASH开发者交流会
Ghost cat 以皮肤为主体的ui框架(唐翎)
Ghost cat 以皮肤为主体的ui框架(唐翎)
FLASH开发者交流会
Mehr von FLASH开发者交流会
(20)
Bambook sdk 与action script
Bambook sdk 与action script
Bambook开放之路
Bambook开放之路
Introduction to air for android 邱彦林
Introduction to air for android 邱彦林
Misato engine hugh_tsai-蔡浩宇
Misato engine hugh_tsai-蔡浩宇
Swf文件格式和abc代码混淆工具 黄珏坤
Swf文件格式和abc代码混淆工具 黄珏坤
松耦合代码之开发方法与工具演示 刘争辉
松耦合代码之开发方法与工具演示 刘争辉
Flash media server 开发经验谈 沈先彬
Flash media server 开发经验谈 沈先彬
Flash 独立游戏开发之路 徐黎明
Flash 独立游戏开发之路 徐黎明
程序接口的另类理解与使用 孙毅
程序接口的另类理解与使用 孙毅
Flash游戏大会 商文烨
Flash游戏大会 商文烨
9月18技术交流会大赛作品介绍 廖湘宁
9月18技术交流会大赛作品介绍 廖湘宁
简化复杂的Flash应用程序 谈熠
简化复杂的Flash应用程序 谈熠
Flash mmorpg游戏引擎及工具开发概述-张明光
Flash mmorpg游戏引擎及工具开发概述-张明光
Web base 吴志华
Web base 吴志华
Flash 游戏应用框架和模块化开发 邱广钦
Flash 游戏应用框架和模块化开发 邱广钦
7月24日交流会麻球演讲 廖湘宁
7月24日交流会麻球演讲 廖湘宁
浅析Flash特效开发 陈勇
浅析Flash特效开发 陈勇
Flash网络通讯处理 陈苏俊
Flash网络通讯处理 陈苏俊
轻量级Flash服务器开发框架(刘恒)
轻量级Flash服务器开发框架(刘恒)
Ghost cat 以皮肤为主体的ui框架(唐翎)
Ghost cat 以皮肤为主体的ui框架(唐翎)
Actionscript中的元编程和开发流程解耦(谈熠)
1.
ACTIONSCRIPT中的元编程和开发流程解耦 谈熠 2010.5
2.
元编程(Meta-programming) 一种根据在运行时的环境动态地获得、创建、修改程序所需要的类和对象的技巧。
3.
一个简单AS元编程应用 Object.method1() Object.method2()
Object.method3() Object[“method”+i]();
4.
AS3中的元编程 ACTIONSCRIPT是一门基于Prototype的语言 flash.utils.*
提供了一套反射工具方法 两个AS3的元编程技巧: 反射 (Reflection) 方法缺失 (Method Missing) 两个编程概念 DRY Convention Over Configuration
5.
反射 (Reflection) 工具:
flash.utils.describeType 作用:返回一个对象的元数据的XML描述信息
6.
反射的应用 classApplicationState {
publicstaticconstLOGIN:uint=1; publicstaticconstLOADING:uint=2; publicstaticconstPLAYING:uint=3; }
7.
反射的应用 classApplicationState {
publicstaticconstLOGIN:uint=1; publicstaticconstLOADING:uint=2; publicstaticconstPLAYING:uint=3; }
8.
反射的应用 classApplicationState {
publicstaticconstLOGIN:uint=1; publicstaticconstLOADING:uint=2; publicstaticconstPLAYING:uint=3; privatestaticconststateNames:Object= {}; }
9.
反射的应用 classApplicationState {
... publicstaticfunction init():void { for each(varconstantName:XMLin describeType(ApplicationState).constant.@name) { stateNames[ApplicationState[constantName.toString()]]= constantName.toString(); } } } ...
10.
反射的应用 classApplicationState {
... publicstaticfunctiongetStateNameByValue(val:uint):String { returnstateNames[val.toString()]; } }
11.
反射的应用 varcurrentState:uint=ApplicationState.LOADING; trace(currentState);
// 1 trace( ApplicationState.getStateNameByValue(currentState) ); // "LOGIN"
12.
概念1:干 干 ——
避免重复 DRY – Don’t Repeat Yourself 一种常见的重复操作: trace(“name:”+this.name+”, data:”+this.data);……
13.
反射在调试时的应用 class Inspector
/** * 列出一个对象中的所有公开变量名,并把这些变量名放在一个 Vector.<String> * 容器中 * @paramobj object of any kind * @return 列出一个对象中的所有公开变量名,并把这些变量名放在一个 * Vector.<String> 容器中 */ publicstaticfunctionlistInstanceVariables(obj:*):Vector.<String> { returnxmlListToStringList(describeType(obj).variable.@name); } publicstaticfunctiondumpInstanceVariables(obj:*):Vector.<String> { returndumpProperty(listInstanceVariables(obj),obj); }
14.
反射在调试时的应用 trace(Inspector. dumpInstanceVariables(this));
15.
方法缺失 (Method Missing)
工具:flash.utils.Proxy 作用:重载AS对象默认的操作行为 原理: Object extends flash.utils.Proxy Object.methodName(arg0,arg1) Object.callProperty(“methodName”,args)
16.
方法缺失 public dynamic
class ClassA extends Proxy { flash_proxy override function callProperty(name:*, ...rest):* { trace(“请求调用方法:”+name) } } varinstanceA:ClassA = new ClassA(); instanceA.doSomeThing(); // 请求调用方法:doSomeThing
17.
概念2:习惯优于配置 习惯优于配置 Convention
Over Configuration 惯例优于配置的宗旨是减轻配置文件的负担。我们要保留应用程序和程序框架的基本可扩展性,同时去掉无休止的配置信息。 AS的”方法缺失”技术非常适用于大配置量的情况。
18.
元编程的使用建议 元编程的关键是你编写程序在它们运行的时候调整和修改它们自身。元编程被使用的越多,你的运行程序就越不象你所编写的源代码。这当然是这个模式的意义所在,不过同时也是危险所在 。调试普通代码已经不是件容易的事情,而要调试元编程所产生的短暂存在的对象则要更困难许多。
因此,一组完整的单元测试是使程序正常工作的关键。如果你的程序使用了大量的元编程技术,那么单元测试是绝对必不可少的。
19.
对开发流程的思考
20.
如何避免影响产品成功的因素 程序:不要出错 减少范错误的可能
降低范错误的频率 提高代码质量 精简代码实现
21.
为了便于表达,我设置两个变量 代表:客户端组 client-side
guys 代表:服务器组 server-side guys
22.
常见的开发工作流程 … 一种紧密耦合的状态
tightly coupled 低效,易出错,难管理
23.
解耦客户端的开发 吃过了吗? <hello>吃了吗</hello>
还没,您呢? {hello:“吃了吗”} …/hello/吃了吗 010011101001101
24.
采用代理模式(Proxy Pattern) Server
send() ServerProxy@connectionObject send() RealConnectionsend() RealConnection可能是 xml, json, bin socket, restful http … function send(){ connectionObject.send() }
25.
用 flash.utils.Proxy优化代理实现 server.walkTo(x,y)
// 发出socket数据包 “WALKTO X Y“ server.attach(targetId) // 发出socket数据包 “ATTACK targetId“
26.
27.
28.
QQ群。。。唉。。QQ群
29.
30.
31.
谢谢! 谈熠 QQ:
2152525 开发者网站: www.wedoswf.com
Jetzt herunterladen