author: YouYee | publish time: 2010-03-06 08:53:37
最近HTML5和Flash被炒得沸沸扬扬,Adobe和Apple之间的对骂也十分有意思,作为一个开发者的你特别是从业与Flash开发的你有考虑过吗?
就我本身而言,我虽然很爱Flash,毕竟这是我一直都很喜欢玩的一个平台,在MM时代,Flash给人带来一次又一次的惊喜,我甚至无法忘记每次Flash更新给开发者带来喜悦的场景,每次在Adobe Labs 上看到新的版本推出的时候,总是第一时间去了解究竟多了哪些功能,从这些新功能中能有那些能给自己的开发带来帮助,我几乎废寝忘食的去学习去研究这些东西。
然而不得不承认,这一年,Adobe给我带来了一次又一次的失望,安全漏洞方面的问题就不说了,在Mac下,执行效率一直很差(10.1据说好了很多);所谓的多平台最终依旧没能够在iPhone上得到支持,甚至对于摄像头的连接你都要针对平台去写特殊的逻辑;最糟糕的是Flash IDE,臃肿,效率底下,拥有2G内存的机器跑CS4依旧十分吃力。
回头再看看浏览器的发展,Safari,Chrome,Firefox都开始支持HTML5,新一代浏览器开始支持OpenGL或者其他的硬件加速,CSS3正在向开发者走来...你可能会不屑一顾的说:IE6一日不死就别和我谈取代Flash,作为一个Flash爱好者,你可以效忠于你的平台,甚至包容他所有的缺点,Flash很强大,强大到几乎所有问题都能解决,只是比较棘手而已。可是不要忘记,Flash是寄生于浏览器,如果没有HTML, 甚至连嵌入网页的机会都没有,我们总是在说Flash Player普及的速度很快,但是我们考虑到了网吧用户吗?他们的机器上是装有还原卡,这意味着他们关机后所有的更新都被重置,Flash终究是一个插件。
记得以前Luar写过一篇文章《Flash的未来未有来》,他的预言似乎没有任何偏差,Flash在RIA应用上被Ajax抢去了风头,糟糕的可用性和差劲的文本呈现能力导致Flash在这个领域节节败退。我是一个Flash职业开发,同时也是一个FrontEnd 职业开发,不会偏袒任何一方,只是我意识到现在Flash的危机来了,不仅仅是HTML5,不仅仅是浏览器的革命。
让我们看看原来很多不得不用Flash实现的功能:
1、文件的上传
2、摄像头拍照
3、数据图表显示
4、富含动感的小动画
5、3D以及粒子特效
6、Flash小游戏
7、照片的幻灯片效果
8、视频播放
而如今这些功能那些已经被取代呢?
数据图表显示(国外已经有人通过SVG和Canvas实现了,IE6甚至也支持)
小动画 (现在都喜欢直接用Tween来实现动画效果,加上CSS3,这个也很快没有人愿意用Flash来实现了)
3D以及粒子特效 确切的说网上已经有很多人用Canvas实现了这些特效而且效果很不错。
照片幻灯片效果 (LightBox告诉我们,Flash不是必要的!)
视频播放(这个还用说吗?YouTube的行动已经证明了一切)
越来越多的东西已经可以不使用Flash来实现了,尽管你会说:Flash能比他们做得更好,但是别忘记了,Flash Player只是一个Plug-in or ActiveX 她的可用性实在很低,在RIA应用上Flash已经失败了一次,然而现在更是腹背受敌。
我们也要仔细的反省下Flash的硬伤:
1.相对于 HTML + CSS + JavaScript, SWF始终在灵活性上欠缺, 服务器要想直接生成动态的SWF内容虽然能够实现,但是需要消耗巨大的硬件资源!
2.FLA始终相对于SVN这一类的代码管理软件而言不够友好,所以Adobe推出了一个叫做Version Cue的东西.
3.无论如何SWF都无法独立在浏览器被禁用的情况下发挥任何作用,甚至不能提示用户.
4.还是文本的渲染能力,是的有了新的TextEngine, 但是效率还是差强人意.
时代在变迁,Flash需要及时地去解决自身的问题,保持自己的创新才能不被取代,在我看来对于开发者而言Flash需要解决以下的问题:
1、依旧是效率还是不够快,你是一款插件,并且程序是经过编译后运行的,你的速度应该比JavaScript快一个数量级以上才是!
2、好好修理自己身上的Bug,不如在Firefox下Wmode导致输入法无法使用,不要去推脱自己的责任,无论这个Bug是谁引起,请推动修改!
3、更加的开放,我们需要Flash Player能够提供更加强大的功能,而不是像现在这样畏首畏脚的Flash Player。
4、保持强劲的创新能力,这样才能让开发者对你爱不释手,才不会放弃你。
5、请把你的IDE的执行效率提高些!Coder们才不会去抱怨去咒骂你们。
作为我个人而言,我当然是希望Flash能够越来越好了,但是光这样又怎能够满足我们开发者的野心呢? 我想Flash Player如果没有就更好了,要是HTML5里面能够支持<swf></swf> 又或者 <video></video>压根就直接支持嵌入Flash,SWF成为HTML5的一个内容标准岂不是更好?!
而身为读者或者开发者的你呢?欢迎留下你的观点。