写点什么

Flash 务实主义(一)——Unnecessary war(不需要的战争)

  • 2011-02-22
  • 本文字数:2469 字

    阅读完需:约 8 分钟

【编者按】随着富互联网技术(RIA)的潮流,Flash 技术在互联网中的应用越来越多,国内 Flash 开发者数量也在以惊人的数量增长。本专题——务实主义,将主要介绍如何在 Flash 开发过程中尽量提高自己的开发效率,不为花哨,只为务实。文章中会提及许多 flash 开发中的实用技巧,期望对各位看官能有所帮助。


不需要的战争

很早以前就有一种说法——技术行业里最无聊的莫过于语言战争。最典型的就是 Java 与.net 之间旷日持久的战争与和平,期间掺杂着公司的宣传手腕,永不休止的针对细枝末节的口水战。一件事情要争论起来始终都有素材,问题在于这种大规模的嘴仗,即使产生了结论也难以被沉淀下来。而且,其结论往往也无法产生任何有意义的效用。最终该用.net 的还是用.net,该用 Java 的还是用 Java,任你怎么宣传,也许能改变初级开发人员的流向,但真正决定一个语言是否被使用的是语言本身的特性,对特定需求的适应程度,而语言的使用数量则决定了开发者的需求量。这是一个完全相反的因果关系,开发人员对语言的影响,微乎其微。

所以说,讨论这些就是些无聊的事。语言之间的对战尚且如此,若是内战的话,岂不是太过愚蠢了。

这次的针对点不是 Silver Light,也不是 HTML5,焦点矛头正是 FLASH 本身。

FLASH**** 在历史上复杂性和特殊性

也许对于程序员来讲,FLASH 就是 AS 的代名词,但很长一段时间都不是这样。FLASH 很长一段时间都是动画,甚至还不是交互式动画,说的直白点,就是网页广告。比起一般 JPG,GIF 方式存在的广告,不仅体积更小,效果体验也要领先很多。而普通视频流的广告由于水管原因实际上是不能实际应用的。所以 FLASH 便活了下来。之后的 FLASH 卡通动画之流都是副产品,毕竟缺乏商业价值。而由于 FLASH 自己基于元件和时间轴创作的特性,很适合向里面加入脚本引擎。虽然 AS1 时这个引擎提供的功能还很弱,但是基于有 IF 和 GOTO 就能写出任何功能的机理,AS1 提供的功能已经很多了。所以网站小游戏一类自然也就冒了出来。再之后,有了 AS3,基本解决了语言本身的障碍,开发稍大的项目成为了可能。虽说 FLEX 只是一个官方 framework,属于 AS3 诞生的产物之一,这样的 framework 会继续出现,总有一天会被其他的各式框架淹没……但在现在看来确实扩展了企业应用方面的使用,一些网站和游戏还有应用程序类的也可以使用。至于 AIR 这个玩意儿……

可以看到,FLASH 的功能一直在增加,但这种增加产生的影响除了增强原有功能,还有很大一部分是在扩展新的适用领域,并不是对原本内容的升级和取代。

新事物和旧事物的竞争与共存

诸如,自从 AS2 出现类之后,与原本一直使用的时间线编程的关系。

实际上,时间线编程是与动画结合最好的一种方式。时间线编程仅仅是把代码插入到动画中,只是让动画转变为交互动画。如果你的网站主要是动画,你的游戏很容易转换成动画的形式,那就很合适。即使在现在,制作一些游戏产品宣传用网站,时间线编程也是很适用的手段,优点自然是单文件,简单的自加载,直观快捷,即使是美术人员也很容易掌握,缺点则是表现受到限制,只适合用在固定动画上,而且美术和编程人员的协作模式在修改方面相当低效,只适用于基本不进行修改的一次性产品。只不过,这样的产品实际上非常多。

新事物想要取代旧事物,需要的条件并不是只是“比以前好”,而是“比以前好很多”。确实也应该是这样。技术的更替需要不小的成本,不仅仅是人员的培训成本,还包括使用风险一类,原有经验的不通用,流程的变化,如果最终结果还仅仅是比以前好,那这就算白忙活了。如果老老实实写外部类来做这种一次性的网站,虽然的确可行,也不一定会多费多少成本,但没有好处的话,为什么做?当然,对于并非一次性使用,需要常常更新,或者是一些需要反复根据需求变更,而且是程序和美术都需要变更的情况,实行代码与资源分离,不管实现起来有多麻烦,因为会“比以前好很多”,最终的时间成本都是合算的。这种情况依然固守旧模式,终将自食其果。

相对的,AS2 与 AS3 的区别也在这里。如果说到更换成本,这个才是最高的。两者完全不相兼容,类库也不通用。但是,新功能和效能先不提,AS3 提供的语法结构更加标准,更接近 Java 等语言,更加静态,也就更适合来编写大型程序。单是编译期间查错和代码提示就是无法取代的决定性功能,能够增强代码的稳定性,在多人以及修改时将减少大量时间成本。但是……如果你的程序基本就是一次成型的,程序规模也很小,诸如一些简单的小游戏,AS3 的这些优势就很难发挥作用。但如果的程序规模较大,而且面临各种重用问题,继续 AS2 最后一定会后悔的。

综上所述,一个问题,在不同的情况下,就是有着不同的答案。任何一样东西在特定条件下都有它的用途,因此,谁都无法推翻或者取代谁,这就是争议背后的结论。

对于开发者

有人说,FLASH 每次更新对开发人员来说就意味着所有人退回到同一起跑线。这是对的也是错的。如果开发人员永远只做一种东西,在这里其实是错的。但开发人员实际上是根据需求跑的,既然开始大量做大型 WebGame,做的东西也越来越复杂,就已经做的不是同一个东西了。做不同的东西却始终想用同样的办法,那还能不死么?但是对于一些小游戏,乃至网站,真的有必要用和大型网游一样的方法来做么?这也许就是争论双方的矛盾所在。

但对于开发人员而言,学习新东西毕竟能增加自己的竞争力,对目前的工作没什么用,这不是不学它的理由。开发者本来就是一个相对“凄惨”的群体,偷懒,可是会死的。

真的会死的。

目前 FLASH**** 开发者类别(不包括美术路线)

  • WebGame 客户端工程师
  • FLASH 网站开发者
  • 手机游戏开发者
  • 自由游戏开发者
  • 网页应用开发者
  • 企业应用开发者
  • 课件开发者
  • 原型开发者
  • Scaleform 界面开发者

关联阅读

http://as3blog.com/as3/as3tip-new-philosophy/

http://wenwen.soso.com/z/q119628245.htm

关于作者

flashyiyi,9RIA.com 天地会元老级舵主,真名唐翎,1986 年出生,《升职记》客户端主程。目前在昆仑万维工作,之前曾在智明星通进行《开心宠物》等项目的开发。开源项目 GhostCat 作者: http://ghostcat.googlecode.com 。个人空间: http://uh.9ria.com/space-12147.html

2011-02-22 06:152881

评论

发布
暂无评论
发现更多内容

阿里大牛看了也要膜拜的大话代码架构(项目实战版)终于出来了

Java 程序员 后端

阿里员工感慨:码农们过去暴富有多轻松,现在赚钱就有多辛苦!

Java 程序员 后端

阿里P8面试官梳理的2020年999道大厂高频Java面试题(附答案)

Java 程序员 后端

阿里二面被问16道 volatile 问题,玩命补充jvm、多线程、高并发

Java 程序员 后端

技术为本,中科柏诚致力于打造高效供应链金融平台

联营汇聚

阿里五面(4轮技术+HR)成功逆袭,面经分享

Java 程序员 后端

阿里技术官亲手总结Part 10个知识点!主动分享!收藏必备!

Java 程序员 后端

阿里P8直接甩我一份Java笔记、面试宝典,当我看到目录的一瞬间,简直怀疑人生!

Java 程序员 后端

阿里一面就凉了:MySQL+多线程+Redis+算法

Java 程序员 后端

用JavaScript访问SAP云平台上的服务遇到跨域问题该怎么办

汪子熙

JavaScript SAP 11月日更 SAP微信集成

阿里亿级长连网关的云原生演进之路

Java 程序员 后端

阿里内部绝密Java面试笔记(珠峰版),冒着被开的风险免费分享

Java 程序员 后端

阿里大师推荐的这份Java开发必读书单,让我成功在寒冬中站稳脚步

Java 程序员 后端

阿里巴巴蚂蚁金服Java面试经历包含答案解析

Java 程序员 后端

阿里P8级大神经验分享,怎样成为一个优秀的架构师?(1)

Java 程序员 后端

阿里三面:CAP和BASE理论了解么?可以结合实际案例说下?

Java 程序员 后端

阿里内部疯传的分布式架构手册,轻松吊打小日子过的不错的面试官

Java 程序员 后端

阿里程序员:入职才两个月,我决定离职

Java 程序员 后端

鸿蒙轻内核源码分析:虚拟内存

华为云开发者联盟

鸿蒙 内存 虚拟内存 OpenHarmony 轻内核

阿里一面,给了几条SQL,问需要执行几次树搜索操作?

Java 程序员 后端

一周信创舆情观察(11.1~11.7)

统小信uos

阿里又一个“逆天”容器框架!这本Kubernetes进阶手册简直太全了

Java 程序员 后端

阿里技术3面+HR面,奋战两个月,终斩获offer定级阿里P6+

Java 程序员 后端

阿里技术总监纯手打的内部手册《MySQL笔记》真是太硬核了

Java 程序员 后端

阿里Redis最全面试全攻略,读完这个就可以和阿里面试官好好聊聊

Java 程序员 后端

阿里三面面试题:分布式服务注册中心该如何选型?我快哭了

Java 程序员 后端

助力数字孪生,TDengine在叁零肆零仿真平台中的实践

TDengine

数据库 tdengine 后端

阿里架构师剖析程序运行原理,程序是如何运行又是如何崩溃的?

Java 程序员 后端

使用Eclipse连接SAP云平台上的HANA数据库实例

汪子熙

数据库 Cloud SAP 11月日更

35w奖金池,腾讯云TDSQL精英挑战赛正式开赛!

科技热闻

阿里巴巴内部涨薪必备的“王者级Dubbo实战笔记”,不啃透不下班

Java 程序员 后端

Flash务实主义(一)——Unnecessary war(不需要的战争)_Java_flashyiyi_InfoQ精选文章