首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络技术 > 网络基础 >

AIR, 小弟我已经对你彻底失望了

2012-11-11 
AIR, 我已经对你彻底失望了.这不是一篇客观全面的评论 只是一种情绪的表达.希望大家不要只注意我文中“愤青

AIR, 我已经对你彻底失望了.
这不是一篇客观全面的评论 只是一种情绪的表达.

希望大家不要只注意我文中“愤青”的一方面,而忽视文中提到的那些AIR和adobe的问题。

最近我打算写一篇 比较详细的“AIR到底哪些地方不好 以及 我期望的AIR应该是什么样子
虽然 也是以 我自己的视角来看 但是一定会比这篇更客观 摆事实讲道理
敬请期待。
另: 我从来没想过打击flashbuilder 和 flex ,我对他们没什么感觉。



BTW :
vii779 ltian znjq  等几位朋友的跟帖讨论 要比主贴更精彩
建议关注flex 开发的同学看一下.
(虽然我主贴是关于 AIR的 但是我不介意在这里讨论 flex的问题 呵呵
因为关于flex 其实我也有很多话想说)

我关于AIR的具体的分析贴 打算在AIR 2.0正式推出 并且我使用过之后再写.
但是不管怎样 如后面一位朋友所言 我对AIR更多的是一种恨铁不成钢的感觉 而没有绝对的恶意.



adobe 有了 AIR这样一个 好东西(至少想法和创意是好的), 但是眼看着一个好东西被adobe糟蹋了.
成天 flash flash flash...完全无视 html ajax 开发人员在 AIR下的诉求

同样是 webkit 内核 效率比 chrome safari 低了不是一点半点.

而且很多很基本的功能都不肯实现.

作为国内 比较早的一批使用 AIR+ajax模式搞开发的程序员 我很失望.

最初AIR带给我的惊喜正在一点点的消失.

我实在不理解adobe是怎么想的.

================================


我在twitter上曾经说过:
html5 都是adobe无法回避的.

与其酸酸的去说  "html5将把互联网带入黑暗"(详见这里) 不如用开放的胸怀去接纳它.




很遗憾这样是行不通的,首先样式是不支持值绑定的。好吧,hack一把让样式支持值绑定,然后你又会被告知setStyle会带来低下的性能问题。

我想这是一个再普通不过的需求了,解决这个问题会有好几种办法,要么写复杂的AS3代码,要么再冗余一个Label,但是不论哪一种都不如上面来的直接简单和自然。如果setStyle没有性能问题,如果样式支持值绑定,整个世界就变的清净了。话说回来了,这个世界又那会有十全十美的东西,要么您就期待Flex一点一点慢慢改进吧,要么您就去封装自己的组件库吧。

顺便一提,Flex默认的几个Renderder都是用As3写的,创建和布局逻辑代码不少,如果你想继承一下扩展一把,那是不行地,里面几个关键的变量和方法都是私有的。期望Flex以后在设计API的时候,能够抱着更加开放的态度,以利于大家扩展,才有可能形成一个成熟的组件库市场的氛围。




原来您是这样理解Flex组件开发的,难怪!

不妥之处欢迎指正,期待您的高见。


确是这个意思,早期的Flex sdk 3.0里面,只有组件的属性能支持数据绑定,组件的样式(此例中Label的color是一个样式)是不支持数据绑定的,sdk 3.2以后样式可以支持数据绑定了。

想申明一下,在这个地方不想讨论如何如何去开发一个组件,相信大家都有一定的组件开发功底。只想列举一下因Flex SDK某些地方的不成熟和一些功能的缺失给开发带来的不方便。

我的例子写的太简单,说的不太详细,有可能误导大家了。举这个例子想阐明以下几个观点

1 Flex SDK 是否做到了可以让一些刚入门的新手很方便的就能写出一个Renderer
2 组件的样式不支持数据绑定,带来了不必要的麻烦。现在已经支持了,也没必要讨论了。
3 一些被奉为开发实践的原则难道就应该这样吗,例如Renderer不要写的太复杂,setStyle要慎用,会带来性能问题。我觉得这是Flex不够完善的一个借口。
4 本例中为了达到Label颜色的动态切换,需要动态更改Label的样式color,这势必会调用setStyle方法,按照某些开发实践原则,setStyle会带来性能问题。您有更好的不损失性能又能达到效果的方案吗,请指出来,但有一个要求,要最简单,至少不要超过我写的例子的那个复杂度,让刚入门的新手都能方便的做到。

希望您能看懂我例子之外所阐述的一些想法,而不仅仅只是陷入对技术实现的一些细节探讨。


按照这个逻辑 我们没有资格说iphone比山寨机好 因为我们自己动手做不出山寨机
按照这个逻辑 我们老百姓永远也没有资格去批评"正厕" 批评"正府" 了, 因为让你当"国加煮习"你未必就比"掏歌"做的好.
按照这个逻辑 90%的批评都是不应该存在的

批评是自由也是权利 你说对吗
按照这个逻辑 我们没有资格说iphone比山寨机好 因为我们自己动手做不出山寨机
按照这个逻辑 我们老百姓永远也没有资格去批评"正厕" 批评"正府" 了, 因为让你当"国加煮习"你未必就比"掏歌"做的好.
按照这个逻辑 90%的批评都是不应该存在的

批评是自由也是权利 你说对吗
你说的对!我的逻辑是存在问题!大家应该有批评的权利!!!

确是这个意思,早期的Flex sdk 3.0里面,只有组件的属性能支持数据绑定,组件的样式(此例中Label的color是一个样式)是不支持数据绑定的,sdk 3.2以后样式可以支持数据绑定了。

想申明一下,在这个地方不想讨论如何如何去开发一个组件,相信大家都有一定的组件开发功底。只想列举一下因Flex SDK某些地方的不成熟和一些功能的缺失给开发带来的不方便。

我的例子写的太简单,说的不太详细,有可能误导大家了。举这个例子想阐明以下几个观点

1 Flex SDK 是否做到了可以让一些刚入门的新手很方便的就能写出一个Renderer
2 组件的样式不支持数据绑定,带来了不必要的麻烦。现在已经支持了,也没必要讨论了。
3 一些被奉为开发实践的原则难道就应该这样吗,例如Renderer不要写的太复杂,setStyle要慎用,会带来性能问题。我觉得这是Flex不够完善的一个借口。
4 本例中为了达到Label颜色的动态切换,需要动态更改Label的样式color,这势必会调用setStyle方法,按照某些开发实践原则,setStyle会带来性能问题。您有更好的不损失性能又能达到效果的方案吗,请指出来,但有一个要求,要最简单,至少不要超过我写的例子的那个复杂度,让刚入门的新手都能方便的做到。

希望您能看懂我例子之外所阐述的一些想法,而不仅仅只是陷入对技术实现的一些细节探讨。



关于Render我们在项目中是这样解决类似问题的:
<mx:itemRenderer>
   <mx:Component>
      <mx:VBox horizontalAlign="center" verticalAlign="middle">
    <mx:CheckBox click="data.selected=!data.selected"    selected="{data.selected}"      visible="{!data.buildIn}" />
     </mx:VBox>
</mx:Component>
</mx:itemRenderer>
如果有多种不同情况导致不同的样式显示,就需要写多个不同样式的Text,根据数据决定其是否visible(不 visible的就不会render,因此不会影响性能)。
这样写Render就可以不需要写ActionScript,稍微比你的方式复杂些。你对Adobe提的意见很好,能否写邮件给他们,我以前曾给JSF规范组写过邮件,如果他们觉得有道理,他们会有回应的,否则也会说出为什么不!

确是这个意思,早期的Flex sdk 3.0里面,只有组件的属性能支持数据绑定,组件的样式(此例中Label的color是一个样式)是不支持数据绑定的,sdk 3.2以后样式可以支持数据绑定了。

想申明一下,在这个地方不想讨论如何如何去开发一个组件,相信大家都有一定的组件开发功底。只想列举一下因Flex SDK某些地方的不成熟和一些功能的缺失给开发带来的不方便。

我的例子写的太简单,说的不太详细,有可能误导大家了。举这个例子想阐明以下几个观点

1 Flex SDK 是否做到了可以让一些刚入门的新手很方便的就能写出一个Renderer
2 组件的样式不支持数据绑定,带来了不必要的麻烦。现在已经支持了,也没必要讨论了。
3 一些被奉为开发实践的原则难道就应该这样吗,例如Renderer不要写的太复杂,setStyle要慎用,会带来性能问题。我觉得这是Flex不够完善的一个借口。
4 本例中为了达到Label颜色的动态切换,需要动态更改Label的样式color,这势必会调用setStyle方法,按照某些开发实践原则,setStyle会带来性能问题。您有更好的不损失性能又能达到效果的方案吗,请指出来,但有一个要求,要最简单,至少不要超过我写的例子的那个复杂度,让刚入门的新手都能方便的做到。

希望您能看懂我例子之外所阐述的一些想法,而不仅仅只是陷入对技术实现的一些细节探讨。



关于Render我们在项目中是这样解决类似问题的:
<mx:itemRenderer>
   <mx:Component>
      <mx:VBox horizontalAlign="center" verticalAlign="middle">
    <mx:CheckBox click="data.selected=!data.selected"    selected="{data.selected}"      visible="{!data.buildIn}" />
     </mx:VBox>
</mx:Component>
</mx:itemRenderer>
如果有多种不同情况导致不同的样式显示,就需要写多个不同样式的Text,根据数据决定其是否visible(不 visible的就不会render,因此不会影响性能)。
这样写Render就可以不需要写ActionScript,稍微比你的方式复杂些。你对Adobe提的意见很好,能否写邮件给他们,我以前曾给JSF规范组写过邮件,如果他们觉得有道理,他们会有回应的,否则也会说出为什么不!

实际上,setStyle的性能并没有想象中的那么夸张,性能慢大概是指的sdk3.0。3.2环境下可以通过对样式进行数据绑定来简化Renderer的开发步骤,并没有感觉到慢,至少在我这边的环境下是这样的。我所说的慢,主要集中在组件的创建速度上,组件数量超过一定规模同时创建的时候,就会有停顿感。组件创建完成后,再怎么处理也慢不到哪里去。基本上在处理这类界面的时候,已不在使用Flex的标准组件。说到JSF,有过比较惨痛的使用经历和不太好的用户体验,才转为用Flex来开发,至少在Flex里面,碰到什么问题,用AS3来封装一下还是可以克服过去的,JSF问题太多,封装一个可重用的JSF组件也是一个痛苦的过程...
72 楼 hsbcnet 2010-04-14   就是一个版面显示几个到几十个货币对,价格在嗖嗖的更新而已。
不过我不是做开发。。。

vii779 写道hsbcnet 写道Flex这么慢吗?我公司用他来做UI哦
慢与不慢只是相对而言,取决于你要做什么样的应用以及你的应用的界面复杂程度。如果仅仅是简单的数据呈现和一般的表单提交,就像Flex例子里面的那种界面,速度还是可以接受的。如果界面需要创建大量的UI元素,速度的问题就要好好衡量一下了。

73 楼 arlxy 2010-04-15   前段时间做了做了两个基于AIR 2.0 BETA2 SDK&FLEX SDK 3.2的项目
FLEX AIR确实不适合做效率要求较高的项目
如果是用户体验要求比较另类FLEX当然是开发方的首选 74 楼 fu80008 2010-05-02   哎,我也只能说air的确四不像。air真2 75 楼 damoqiongqiu 2010-11-02   杯具,我应该早点看到这个文,我TMD今天还在用AIR倒腾JS,一点不爽,F**K。 76 楼 inshua 2010-11-02   flex 设计的最经典的应该是 view stack 了。

as 烂的不可救药,幸好及时抛弃了它。 77 楼 yunzhongxia 2011-01-13   从事flex开发快2年了,来说说我对flex的感觉。做简单的MIS系统勉强还可以,但是对于复杂的系统就很艰难了。作为富客户端的技术,flex根本没有做到给用户“富”的感觉。DataGrid等不能直接复制内容,组件本身存在的一些bug,flex sdk变化这么快就是因为bug太多,在我们的开发中遇到过很多问题,flex做企业级开发实在有很多问题。现在平台对flex封装了很多东西,如果完全抛弃flex也很心痛。flex想说爱你不容易呀! 78 楼 115300111 2011-07-31   air with ajax 教程还有后续吗?

热点排行