`

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

 
阅读更多

【编者按】随着富互联网技术(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

分享到:
评论

相关推荐

    Unnecessary Code Detector

    当我们需要清理代码并删除那些不需要的代码碎片时,Unnecessary Code Detector(https://marketplace.eclipse.org/content/unnecessary-code-detector/metrics) 就可以完成这项工作。当你点击按钮该工具就会出现标志...

    is-unnecessary:好吧,是吗?

    " 指向的是一个名为 "is-unnecessary" 的 JavaScript 库。这个库很可能提供了一些功能,用于检查某个对象、变量或条件是否真的必要,或者帮助开发者识别和消除代码中的冗余部分。在软件开发中,优化代码以减少不必要...

    191-测试试卷-详细设计1

    用于描绘过程细节的符号包括ER图(B)——用于数据建模,流程图(C)——表示程序流程,决策表(D)——用于逻辑决策规则。 4)接口一致性意味着(A)每个应用都应该有自己的独特外观和感觉(B)输入机制在整个应用...

    【精品】英语非谓语动词练习 (3).doc

    【精品】英语非谓语动词练习主要涵盖了英语语法中的一个重要概念——非谓语动词。非谓语动词指的是在句子中不作为谓语,但具有动词特征的形态,包括不定式(to do)、动名词(doing)和分词(现在分词doing和过去...

    Atom-atom-miniprettier,一个在atom中运行漂亮程序的零配置插件.zip

    Atom-atom-miniprettier 是一个专为 Atom 文本编辑器设计的插件,它的主要功能是实现代码美化,让编程工作变得更加轻松愉快。Atom 是一个由GitHub开发的开源文本编辑器,它采用Web技术(如HTML、CSS和JavaScript)...

    初三关于保护环境的英语作文.pdf

    首先,我们不得不面对一个严峻的现实——环境恶化正以惊人的速度进行着。如今,城市中灰尘漫天,空气质量差到影响人们的呼吸;白色垃圾随处可见,河流、海洋中塑料袋和各种废弃物堆积,破坏了生态平衡。通过英语作文...

    英译汉常出现的问题.doc

    例1:“There will come a day when people the world over will live a happy life under the sun of socialism.” 译为:“全世界人民在社会主义下过幸福生活的一天是会到来的。” 可调整为:“全世界人将在社会...

    鄂尔多斯专版2020中考英语复习方案第二篇语法专题突破专题十二构词法试题20200519215

    - 我不喜欢这部电影,因为主角杀了很多动物——人类的朋友。 - 这两个房间之间没有差异(difference)。 2. 使用所给词的适当形式填空: - 订这么多食物是不必要的(unnecessary),这是对食物的巨大浪费。 - ...

    double保留小数

    - `BigDecimal.ROUND_UNNECESSARY`:不允许舍入,如果必须舍入,则抛出异常。 #### 三、示例代码解析 下面是对给定代码的具体分析: ```java import java.math.BigDecimal; public class T { public static ...

    MyEclipse 10优化(自我总结的优化)

    ##### 第一步:去除不需要加载的模块 在大多数情况下,用户并不需要使用MyEclipse的所有功能,因此可以通过以下步骤来移除不需要的模块: 1. 打开配置窗口:`Windows` > `Preferences` 或 `Window` > `Preferences...

    黑龙江省大庆实验中学2020_2021学年高二英语下学期4月月考试题202105180283

    如第2题,男士的话可能暗示他们不打算住在旅馆,这需要学生理解对话的隐含意思。 3. 时间把握:例如第3题询问女士离开的具体时间,学生需要准确理解对话中的时间表述,并在有限的时间内做出选择。 4. 观点判断:第...

    Maximizing ASP.NET

    最优化ASP.NET ——面向对象开发实践(英文版) Coverage includes Understanding the ASP.NET object model, classes, and n-tier application architecture Designing classes for maximum performance and ...

    终端不能访问远程计算机常见错误及原因.doc

    终端不能访问远程计算机常见错误及原因 终端不能访问远程计算机是网络技术人员和工程师经常遇到的问题,错误信息五花八门,让人感到烦躁。在这篇文章中,我们整理了一些常见的错误信息,并进行了分析,同时提供了...

    2021届高考英语大一轮复习Unit23Conflict课时作业23b北师大版选修8

    根据最后一段 Don Meij 的话 "He is confident that one day DRU will become an integral part of the Domino's family." 可以推断,Don Meij 认为 DRU 有一天会成为 Domino's 家族不可或缺的一部分,这暗示了 DRU ...

    Remove Unnecessary Tweets-crx插件

    语言:English 扩展删除了Tweets,从您的时间表中删除了其他人的喜好。 您在一些帐户中获取信息,但... 如果你认为这是时候失去了,你不想看到'x喜欢这个'等。推文,你可以使用它。 所以你可以获得更好的Twitter时间表。

    unnecessary-wizard:Groovy 可配置 DI 容器

    一个简单的领域特定语言 (DSL) 使连接您的应用程序就像编写一个 For-Loop 来总结整数列表一样简单。 想尝尝吗? injector { // The name of this injector name "ComplexInjection" // The type of this injector ...

    火线100天全国版2016中考英语总复习第一部分第十一课时八下Units3_4试题

    【火线100天全国版2016中考英语总复习第一部分第十一课时八下Units3_4试题】 本课时主要复习了初中英语八年级下册第三单元和第四单元的重点词汇、短语及句型,聚焦人际交往这一主题。以下是详细的知识点梳理: **...

    02.专四语词真题讲义(2019年).pdf

    B选项"alleviate unnecessary hostility"减轻不必要的敌意,C选项"indicate uncertainty"表示不确定性,D选项"dramatize a fact"强调事实,均不符合语境。 10. 在这个句子中,“Harry was compelled to resign and ...

    2012高中英语一轮复习精品课件(大纲版):Unit1《Good_friends》(高一).ppt

    标题中的“2012高中英语一轮复习精品课件(大纲版):Unit1《Good_friends》(高一).ppt”表明这是一个针对高一学生的一轮复习课程,主题是“好朋友”。这个课件可能涵盖了与友谊相关的词汇、短语、语法、阅读理解以及...

Global site tag (gtag.js) - Google Analytics