Flash Pro vs. Flash Builder vs. OpenPlug Studio for手机应用程序开发

前一阵子因为一个demo的项目,第一次接触到FlashPro CS5.5,才深深体会到它和FlashBuilder与OpenPlug Studio的差别。

第三方用Flash Pro CS5.5开发了一个iPad的应用程序,它特别要求demo时要用iPad 2,否则效果会很不好。在我的印象中,iPad 1已经很强悍了,所以就很不信邪地把它装在我的iPad 1上。果然每个可以卷动的UI控件动起来真的” 很卡”,我再回头来看一下它在iPad 2上的表现,其实也只是"勉强可接受"的地步而已。第三方还告诉我,他们甚至已经在程序架构上优化过了(他们直接用graphics这种低阶的API,亦即自己直接用bitmap贴图,避掉用Movie这类的高阶API可能有的overhead),结果还是不太理想....

其实这也没有太意外,之前就对AIR 2.7在iOS上做过benchmark,数据已显示它在iOS上的效能不好,只是还没真正地目睹它在实际的应用程序上的情况。

我把他们的源代码在Flash Pro CS5.5中打开,大概地玩了一下这个工具的用户操作介面,很明显它有强大的time line和图层等接口,但对ActionScript程序的撰写,IDE真的是简单到不行。跟第三方的开发团队询问一下,约略地了解到几个事实:
- Flash Pro的IDE没办法做自动补全(autocompletion),除了用search,也没办法很快地跳到/查到某一变量或函数的定义或宣告;也没有一个介面可以一目了然地看出代码的结构。
- 调适的功能很阳春,几乎确定在target上没有办法调适。
- 除非特别在代码上做一些排版的计算,否则很难直接排版一次就可以在任何的莹幕大小自动排版。(因为这样,协有厂商说只能用在iPad上demo,要在其他的分辨率下执行则必须大改代码)

以上"没办法"办到的事,Flash Builder (和OpenPlug Studio)全部都可以办到。(注:OpenPlug Studio可用FlashBuilder的plug-in的形式存在,完全利用FlashBuilder的IDE,只是调用比较旧的Flex Framework)

由此,我深深地体到Adobe说过"用Flash Builder开发交互式的RIA/RDA会是Flash Pro的10倍快"的这句话,Adobe真的在Flash Builder/Flex Framework上下了很大的功夫,例如提供MXML设开发者能一目了然地做排版、浏览或设定某class的实例的属性或方法,并可简单用百分比设定大小来自动依莹幕大小作自动排版(Flash Builder会在build时将它转译成相对应AcitionScript)。以架构来看,Adobe的Flex真的是棒的一个Framework!

实在看不下去这个第三方的demo程序在iPad上的表现,我就把他们给我的.fla中抓出所有的图档,花了大约两天的时间把同样的功能用OpenPlug Studio重新写一遍(自己写MXML/ActionScript,没有用到任何第三方的代码)。最后,我的版本不但可以在任何大小的莹幕自动缩放排版、同时放到iOS和Android的装置上,且UI反应的速度十分顺畅,甚至可以在我那支慢到不能再慢的老iPhone 3G上跑得很顺呢!(我的版本在iPhone 3G上的反应速度甚至比第三方的版本在iPad 2上还好!) 

OpenPlug Studio编译出来的行动装置应用程序之所以可以在target上执行的效能这么好,主要的原因就是它其实是把ActionScript转译成C++,再用平台自己的compiler编译成target binary,且它是把这些高阶的UI组件直接mapping到平台上对应的UI组件,所以结果跟用平台SDK开发的应用程序表现得一样好!(原生的用户体验和效能)

再插播一个最近的大新闻:Adobe宣布要放弃未来Flash Player在智能型手机/平板计算机/电视浏览器的支持,全力投入对HTML5的支持。虽然Adobe声明会继续支持用FlashPro和Flash Builder在行动装置上开发AIR的应用程序,很多人开始对Flex的前途开始质疑。

其实现在AIR/Flash在手机/平板计算机的情况真的很尴尬,Flash Pro/Flash Builder应用程序在iOS上的效能,没办法比HTML/JavaScript跑在”webview”上(例如Phonegap+jQuery之类的解决方案)很明显地好,Flash网页在Andrid平版计算机的浏览器上又没有办法像在一般PC上给人很惊艳地流畅,加上HTML5大军压境, 这样的情况下Flash/AIR很难在市场上找到自己的定位。

如果当初Adobe的Flash Pro和FlashBuilder采用和OpenPlug Studio相同的方法,是对ActionScrip转译成C++再用平台的compiler编译成target binary,并把每个UI控件直接mapping到(即直接调用)平台原生的UI控件(而不是由AIR完全靠自己去宣染每一个Adobe自己定义的UI控件),那现在可能还有机会靠执行效能和原生的使用者经验和不怎么成熟的HTML 5放手一搏(而且还可能有机会跟HTML5多打几年仗哩!)。

跟据以上的诸多事实,我的心得是:
- Flash Pro真的是针对建立一个"UI的情境动画"用的;如果是"交互式的UI",则应使用Flash Builder/OpenPlug Studio。
- 如果您是ActionScript的developer,在这半年到一年内要开发跨平台的手机/平板计算机应用程序,且要求要有平台原生的用户经验和反应速度,那OpenPlugStudio会是不错的选择。
- 如果您是ActionScript的developer,在这半年到一年内要开发跨平台的手机/平板计算机应用程序,想要好好leverage Adobe的其他工具(例如Catalyst和Flash Pro等),且在iOS上UI的反应速度不佳的情况您可以接受,那Flash Builder仍是个很不错的选择。
- 如果您要开发的跨平台手机/平板计算机应用程序是要半年或一年后才上架/上市,那.... 立刻去拥抱HTML5吧!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值