Soumettre la recherche
Mettre en ligne
[Flash开发者交流][2010.05.30]actionscript中的元编程和开发流程解耦(谈熠)
•
Télécharger en tant que PPTX, PDF
•
0 j'aime
•
190 vues
Shanda innovation institute
Suivre
Technologie
Signaler
Partager
Signaler
Partager
1 sur 31
Télécharger maintenant
Recommandé
[人本设计沙龙][2010.04.18]运营专业型社区的经验和反思(范凯)
[人本设计沙龙][2010.04.18]运营专业型社区的经验和反思(范凯)
Shanda innovation institute
34 s
34 s
datainlife
[Flash开发者交流][2010.03.28]flex中的数据绑定和列表模式(徐哲)
[Flash开发者交流][2010.03.28]flex中的数据绑定和列表模式(徐哲)
Shanda innovation institute
[Flash开发者交流][2010.05.30]flex开发实践经验谈(谢敏)
[Flash开发者交流][2010.05.30]flex开发实践经验谈(谢敏)
Shanda innovation institute
[人本设计沙龙][2010.04.18]产品体验的细节与整体把握
[人本设计沙龙][2010.04.18]产品体验的细节与整体把握
Shanda innovation institute
Indicators for measuring library resources and services
Indicators for measuring library resources and services
Chr. Michelsen Institute, CMI
[Flash开发者交流][2010.11.28]swf文件格式和abc代码混淆工具(黄珏坤)
[Flash开发者交流][2010.11.28]swf文件格式和abc代码混淆工具(黄珏坤)
Shanda innovation institute
[Flash开发者交流][2010.11.28]松耦合代码之开发方法与工具演示(刘争辉)
[Flash开发者交流][2010.11.28]松耦合代码之开发方法与工具演示(刘争辉)
Shanda innovation institute
Recommandé
[人本设计沙龙][2010.04.18]运营专业型社区的经验和反思(范凯)
[人本设计沙龙][2010.04.18]运营专业型社区的经验和反思(范凯)
Shanda innovation institute
34 s
34 s
datainlife
[Flash开发者交流][2010.03.28]flex中的数据绑定和列表模式(徐哲)
[Flash开发者交流][2010.03.28]flex中的数据绑定和列表模式(徐哲)
Shanda innovation institute
[Flash开发者交流][2010.05.30]flex开发实践经验谈(谢敏)
[Flash开发者交流][2010.05.30]flex开发实践经验谈(谢敏)
Shanda innovation institute
[人本设计沙龙][2010.04.18]产品体验的细节与整体把握
[人本设计沙龙][2010.04.18]产品体验的细节与整体把握
Shanda innovation institute
Indicators for measuring library resources and services
Indicators for measuring library resources and services
Chr. Michelsen Institute, CMI
[Flash开发者交流][2010.11.28]swf文件格式和abc代码混淆工具(黄珏坤)
[Flash开发者交流][2010.11.28]swf文件格式和abc代码混淆工具(黄珏坤)
Shanda innovation institute
[Flash开发者交流][2010.11.28]松耦合代码之开发方法与工具演示(刘争辉)
[Flash开发者交流][2010.11.28]松耦合代码之开发方法与工具演示(刘争辉)
Shanda innovation institute
[Flash开发者交流][2010.11.28]air android开发的一些心得(邱彦林)
[Flash开发者交流][2010.11.28]air android开发的一些心得(邱彦林)
Shanda innovation institute
[Flash开发者交流][2010.07.24]浅析flash特效开发(陈勇)
[Flash开发者交流][2010.07.24]浅析flash特效开发(陈勇)
Shanda innovation institute
[Flash开发者交流][2010.07.24]简化复杂的flash应用程序(谈熠)
[Flash开发者交流][2010.07.24]简化复杂的flash应用程序(谈熠)
Shanda innovation institute
[Flash开发者交流][2010.07.24]数着麻球开发自己喜欢的小游戏(廖湘宁)
[Flash开发者交流][2010.07.24]数着麻球开发自己喜欢的小游戏(廖湘宁)
Shanda innovation institute
[.Net开发交流会][2010.06.19]better framework better life(吕国宁)
[.Net开发交流会][2010.06.19]better framework better life(吕国宁)
Shanda innovation institute
[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)
[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)
Shanda innovation institute
Flash开发者交流][2010.05.30]flash 原型开发(刘磊)
Flash开发者交流][2010.05.30]flash 原型开发(刘磊)
Shanda innovation institute
[Flash开发者交流][2010.05.30]轻量级flash服务器开发框架 刘恒
[Flash开发者交流][2010.05.30]轻量级flash服务器开发框架 刘恒
Shanda innovation institute
[Flash开发者交流][2010.05.30]avm2虚拟机浅析与as3性能优化(陈士凯)
[Flash开发者交流][2010.05.30]avm2虚拟机浅析与as3性能优化(陈士凯)
Shanda innovation institute
[Flash开发者交流][2010.05.30]flash独立游戏 现状分析与发展思考(陈静)
[Flash开发者交流][2010.05.30]flash独立游戏 现状分析与发展思考(陈静)
Shanda innovation institute
[Flash开发者交流][2010.03.28]flash物理引擎(王成)
[Flash开发者交流][2010.03.28]flash物理引擎(王成)
Shanda innovation institute
[Flash开发者交流][2010.03.28]flash物理引擎(王成)
[Flash开发者交流][2010.03.28]flash物理引擎(王成)
Shanda innovation institute
[人本设计沙龙][2010.04.18]web产品在移动终端的应用和未来(ucd)
[人本设计沙龙][2010.04.18]web产品在移动终端的应用和未来(ucd)
Shanda innovation institute
[人本设计沙龙][2010.04.18]理性的设计(西乔)
[人本设计沙龙][2010.04.18]理性的设计(西乔)
Shanda innovation institute
[人本设计沙龙][2010.04.18]开放平台(谭思亮)
[人本设计沙龙][2010.04.18]开放平台(谭思亮)
Shanda innovation institute
[人本设计沙龙][2010.04.18]第二届人本设计沙龙活动介绍(丁宇)
[人本设计沙龙][2010.04.18]第二届人本设计沙龙活动介绍(丁宇)
Shanda innovation institute
Contenu connexe
Plus de Shanda innovation institute
[Flash开发者交流][2010.11.28]air android开发的一些心得(邱彦林)
[Flash开发者交流][2010.11.28]air android开发的一些心得(邱彦林)
Shanda innovation institute
[Flash开发者交流][2010.07.24]浅析flash特效开发(陈勇)
[Flash开发者交流][2010.07.24]浅析flash特效开发(陈勇)
Shanda innovation institute
[Flash开发者交流][2010.07.24]简化复杂的flash应用程序(谈熠)
[Flash开发者交流][2010.07.24]简化复杂的flash应用程序(谈熠)
Shanda innovation institute
[Flash开发者交流][2010.07.24]数着麻球开发自己喜欢的小游戏(廖湘宁)
[Flash开发者交流][2010.07.24]数着麻球开发自己喜欢的小游戏(廖湘宁)
Shanda innovation institute
[.Net开发交流会][2010.06.19]better framework better life(吕国宁)
[.Net开发交流会][2010.06.19]better framework better life(吕国宁)
Shanda innovation institute
[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)
[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)
Shanda innovation institute
Flash开发者交流][2010.05.30]flash 原型开发(刘磊)
Flash开发者交流][2010.05.30]flash 原型开发(刘磊)
Shanda innovation institute
[Flash开发者交流][2010.05.30]轻量级flash服务器开发框架 刘恒
[Flash开发者交流][2010.05.30]轻量级flash服务器开发框架 刘恒
Shanda innovation institute
[Flash开发者交流][2010.05.30]avm2虚拟机浅析与as3性能优化(陈士凯)
[Flash开发者交流][2010.05.30]avm2虚拟机浅析与as3性能优化(陈士凯)
Shanda innovation institute
[Flash开发者交流][2010.05.30]flash独立游戏 现状分析与发展思考(陈静)
[Flash开发者交流][2010.05.30]flash独立游戏 现状分析与发展思考(陈静)
Shanda innovation institute
[Flash开发者交流][2010.03.28]flash物理引擎(王成)
[Flash开发者交流][2010.03.28]flash物理引擎(王成)
Shanda innovation institute
[Flash开发者交流][2010.03.28]flash物理引擎(王成)
[Flash开发者交流][2010.03.28]flash物理引擎(王成)
Shanda innovation institute
[人本设计沙龙][2010.04.18]web产品在移动终端的应用和未来(ucd)
[人本设计沙龙][2010.04.18]web产品在移动终端的应用和未来(ucd)
Shanda innovation institute
[人本设计沙龙][2010.04.18]理性的设计(西乔)
[人本设计沙龙][2010.04.18]理性的设计(西乔)
Shanda innovation institute
[人本设计沙龙][2010.04.18]开放平台(谭思亮)
[人本设计沙龙][2010.04.18]开放平台(谭思亮)
Shanda innovation institute
[人本设计沙龙][2010.04.18]第二届人本设计沙龙活动介绍(丁宇)
[人本设计沙龙][2010.04.18]第二届人本设计沙龙活动介绍(丁宇)
Shanda innovation institute
Plus de Shanda innovation institute
(16)
[Flash开发者交流][2010.11.28]air android开发的一些心得(邱彦林)
[Flash开发者交流][2010.11.28]air android开发的一些心得(邱彦林)
[Flash开发者交流][2010.07.24]浅析flash特效开发(陈勇)
[Flash开发者交流][2010.07.24]浅析flash特效开发(陈勇)
[Flash开发者交流][2010.07.24]简化复杂的flash应用程序(谈熠)
[Flash开发者交流][2010.07.24]简化复杂的flash应用程序(谈熠)
[Flash开发者交流][2010.07.24]数着麻球开发自己喜欢的小游戏(廖湘宁)
[Flash开发者交流][2010.07.24]数着麻球开发自己喜欢的小游戏(廖湘宁)
[.Net开发交流会][2010.06.19]better framework better life(吕国宁)
[.Net开发交流会][2010.06.19]better framework better life(吕国宁)
[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)
[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)
Flash开发者交流][2010.05.30]flash 原型开发(刘磊)
Flash开发者交流][2010.05.30]flash 原型开发(刘磊)
[Flash开发者交流][2010.05.30]轻量级flash服务器开发框架 刘恒
[Flash开发者交流][2010.05.30]轻量级flash服务器开发框架 刘恒
[Flash开发者交流][2010.05.30]avm2虚拟机浅析与as3性能优化(陈士凯)
[Flash开发者交流][2010.05.30]avm2虚拟机浅析与as3性能优化(陈士凯)
[Flash开发者交流][2010.05.30]flash独立游戏 现状分析与发展思考(陈静)
[Flash开发者交流][2010.05.30]flash独立游戏 现状分析与发展思考(陈静)
[Flash开发者交流][2010.03.28]flash物理引擎(王成)
[Flash开发者交流][2010.03.28]flash物理引擎(王成)
[Flash开发者交流][2010.03.28]flash物理引擎(王成)
[Flash开发者交流][2010.03.28]flash物理引擎(王成)
[人本设计沙龙][2010.04.18]web产品在移动终端的应用和未来(ucd)
[人本设计沙龙][2010.04.18]web产品在移动终端的应用和未来(ucd)
[人本设计沙龙][2010.04.18]理性的设计(西乔)
[人本设计沙龙][2010.04.18]理性的设计(西乔)
[人本设计沙龙][2010.04.18]开放平台(谭思亮)
[人本设计沙龙][2010.04.18]开放平台(谭思亮)
[人本设计沙龙][2010.04.18]第二届人本设计沙龙活动介绍(丁宇)
[人本设计沙龙][2010.04.18]第二届人本设计沙龙活动介绍(丁宇)
[Flash开发者交流][2010.05.30]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
Télécharger maintenant