`

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:好吧,是吗?

    是不必要的好吧,是吗?安装使用做: npm install is-unnecessary执照麻省理工学院

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

    Atom-atom-miniprettier.zip,一个在atom中运行漂亮程序的零配置插件小美人儿,atom是一个用web技术构建的开源文本编辑器。

    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 ...

    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 ...

    try-wrapper:通过构建用try-catch将函数包裹起来

    try-wrapper输入Javascript脚本字符串,然后利用try catch将其包裹起来,基于构建的前端错误捕获工具。Example 1var wrapper = require('try-wrapper');console.log( wrapper('function test() { console.log("hello...

    带优先级的多任务管理模块(C)

    多任务多线程管理模块,任务有优先级,一个任务执行完毕,按照优先级高低执行另一个任务 1)如何使用: 1. 声明一个HashTaskList,或在栈上动态获取; 2. 调用InitTaskList初始化上一步的HashTaskList 3. 调用...

    getitfree_20190830_disk-defrag-setup.exe

    getitfree是一个友好界面,快速简便的清理垃圾空间、进行磁盘整理的工具。 getitfree能够识别多达50种垃圾文件,可以让你轻松地把垃圾文件请出你的计算机。 Getitfree is a free disk utility designed to ...

    Android代码-FOSS Browser

    The app also does not need any unnecessary permissions. A simple Android browser based on webview. The base is "Ninja" (https://github.com/mthli/Ninja). The intention is to provide a simple and light...

    东大22春《大学英语(一)X》在线平时作业1

    1.A good habit can make our ...4.I think it unnecessary to go back there, _____we have visited these places. A.so that B.in order to C.provided that D.now that 答案D 5.The organization performed an

    不确定性波动

    $ git clone https://github.com/<user>/<your>.git删除不使用的框架如果知道不使用一个或多个可选的gui / graphics框架(fltk,gtkmm,imgui等),则可以使用git rm删除它们: $ git rm -r src/<unnecessary>依存...

    eclipse 格式化模板

    Remove unnecessary '$NON-NLS$' tags Add unimplemented methods Sort members excluding fields, enum constants, and initializers Organize imports Format source code Correct indentation Remove redundant ...

    URL Quick Append-crx插件

    「我想要继续看视频,但是我担心我想要搜索的标签转眼就忘了」不必再来回切换标签页啦,这个插件帮你快速记录想要搜索的内容,一次性输入多个内容,然后一口气打开全部标签页——不用担心,默认 Lazy Load,只有当你...

    Q-Dir(多窗口资源管理器)5.44绿色免费版

    Q-Dir是一款非常独特的资源管理器,特别适用于频繁在各个目录间跳跃复制粘贴的情况,因为Q-Dir有4个窗口!每个窗口都可以方便的切换目录,以不同颜色区分不同类型的文件,各窗口之间可以方便的拖放操作互相的文件。 ...

    JMXUnit-开源

    JMXUnit 是 Junit 的一个简单扩展 - 来自 Erich Gamma 和 Kent Beck 的流行的 Java 单元测试框架。 JMXUnit 包的目标是支持 JMX MBean 的独立于 JMX 供应商的测试。

    高效的golang开发

    golang编程入门神器,从入门到精通,理论和实际demo相结合,帮你快速入门golang开发

    mrfufufu.github.io:MrFu-Yuan Fu's Blog

    最近翻译了两篇 的 blog,所以,这家网站上的略微多了点,然后一不小心在看 jekyll 主题的时候发现了现在使用的这个主题,顺藤摸瓜,找到了这个 ,是从 jekyll 的一个主题网站 的 上看到的,又顺藤摸瓜(大夏天的,...

    tbb_playground

    如果知道不使用一个或多个可选的gui / graphics框架(fltk,gtkmm,imgui等),则可以使用git rm删除它们: $ git rm -r src/<unnecessary> 依存关系 关于安装命令的注意事项: 对于Windows,我们使用 。 对于...

    cpp_start_project

    如果您知道不打算使用一个或多个可选的gui / graphics框架(fltk,gtkmm,imgui等),则可以使用git rm删除它们: $ git rm -r src/<unnecessary> 依存关系 关于安装命令的注意事项: 对于Windows,我们使用 。 ...

Global site tag (gtag.js) - Google Analytics