- 浏览: 2617956 次
- 性别:
- 来自: 小胖儿的大城
文章分类
最新评论
-
ni4wangba0:
ni4wangba0 写道亲测,算法有问题。对不起,其实是我自 ...
谈谈"求线段交点"的几种算法(js实现,完整版) -
ni4wangba0:
亲测,算法有问题。
谈谈"求线段交点"的几种算法(js实现,完整版) -
kers007:
苹果不让Webapp 在appstore 里发布,我不知道对 ...
苹果真的要在 AppStore 里封杀 WebApp 吗? -
striveandlive:
fins = js大牛
[原创]GT-Template, 一个超轻量级的js模板工具. -
AlwaysYang:
基础扎实的才能行走天下。
关于body的"大小"在ie和ff下的一些基础知识
这不是一篇客观全面的评论 只是一种情绪的表达.
希望大家不要只注意我文中“愤青”的一方面,而忽视文中提到的那些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上曾经说过:
AIR的伟大之处在于可以让广大熟悉html编程的人也可以快速的掌握开发客户端软件的能力. 这是好事.熟悉html开发人员要比熟悉SWING .net(桌面开发)的人多很多
苹果有浏览器 有操作系统 有硬件,google有浏览器 有操作系统 有硬件,微软亦然。所以他们在谈论起在“互联网应用的UI要使用什么技术”时 明显有更大的话语权和更足的底气。而Adobe能拿得出手的只有需要寄人篱下的“flash”。所以AIR对于adobe的意义还是很大的。
虽然外界一直把HTML5当做 flash的对手偶.但是adobe千万不能这样看,adobe应该把html5变成自己的武器,让旗下的产品加强对html5的支持...好吧,我承认我太过迷恋AIR+Ajax的开发模式了...
(从最新发布的cs5的特性来看 adobe已经意识到这点了 GJ! XD)
我在AIR里用js+html5 canvas开发一个动画示例,在chrome safari中能跑到每秒90帧左右,在AIR里勉强18帧(且很不稳定).抱怨一下.我实在是没地方抱怨了
突然发现 我搞AIR+Ajax开发好尴尬. 纯Web开发流 纯Native桌面应用开发流 都不待见我.而Adobe流又都是搞flash的 更是一副跟我势不两立的架势.我好无辜...
google chrome捆绑flash也只是暂时的,当他发现这么做并不会帮助他进一步扩大市场占有率时 他随时都可以放弃这种捆绑
adobe的flash需要运行在别人的浏览器和操作系统里 而且这个“别人”还是adobe的竞争对手…那被别人耍被别人欺负被别人当作博弈的筹码就不足为奇了.
....
我在推特上的话 可能只是一些牢骚 只是一些主观视角强烈的妄语,但是至少说明我----一个曾经的AIR坚决的拥护者 已经开始对它厌倦了.
================================
ExtJS 的官方IDE已经抛弃AIR了 使用了 QTWebkit
google的chrome 开始支持 native client技术了 html5 webgl也来了
摆在我面前的选择真的很多 AIR 我是不是应该放弃你了?
================================
adobe 如果想在未来的互联网领域内占有一席之地 拥有一定的话语权.
AIR 应该是一部很关键的棋子
用更加开放的态度去拥抱HTML5才是王道.
(例如让AIR 和 dreamweaver更好的支持html5的特性 开发出基于html5 canvas/svg的动画制作工具 等等,
甚至做一个 浏览器 --- AIR都可以做出来 做浏览器自然也不是问题...)
================================
好吧 我承认我的担心有点多余.
靠着ps ai pdf 这些东西 adobe 就已经可以把自己喂的很饱了.
好吧 我知道我的牢骚很傻很BI ,
闪客们靠着"世界上98%的计算机都装有flash插件"这句话 就可以让自己心满意足 高枕无忧了
恩 各位 adobe的粉丝们 无视我吧.
====================
补充:
我本人 不会flash (只会一点as3 摆弄过一阵flex), 也不打算深入学习这项技术
但是我 对flash并没有敌对情绪 我一直觉得 flash在很多领域是无法被替代的.
就算未来浏览器很NB了 可以在浏览器里面看电影 听音乐 玩使命召唤, 那flash也不会消亡.
而且会活得很长很长, flash的寿命绝对比目前所有的闪客们的职业生涯要长久.
但是 adobe 必须面对html5的挑战
不管flash的卫道士们 怎样高喊"HTML5不是flash杀手" "flash无法被替代", "html5的到来还很漫长" "html5的统一化 标准化更漫长"...
html5 都是adobe无法回避的.
与其酸酸的去说 "html5将把互联网带入黑暗"(详见这里) 不如用开放的胸怀去接纳它.
我觉得 vii779 的意思应该是 "如果能绑定值就好了"
或者说如果支持 color="表达式" (让{...}可以类似 jsp里的 <%=%>) 就好了
确是这个意思,早期的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组件也是一个痛苦的过程...
我觉得 vii779 的意思应该是 "如果能绑定值就好了"
或者说如果支持 color="表达式" (让{...}可以类似 jsp里的 <%=%>) 就好了
确是这个意思,早期的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规范组写过邮件,如果他们觉得有道理,他们会有回应的,否则也会说出为什么不!
IBM \微软\Oracle这些大公司之间有资格相互抨击,但无论哪个公司,对我来说其技术成就都是高山仰止!
你关于技术的观点 我都可以认同 (毕竟大家的角度和经历不一样)
但是 这种 "你做不到或者做不到更好, 就没有资格批评别人" 的逻辑是极其错误的.
按照这个逻辑 我们没有资格说iphone比山寨机好 因为我们自己动手做不出山寨机
按照这个逻辑 我们老百姓永远也没有资格去批评"正厕" 批评"正府" 了, 因为让你当"国加煮习"你未必就比"掏歌"做的好.
按照这个逻辑 90%的批评都是不应该存在的
批评是自由也是权利 你说对吗
你说的对!我的逻辑是存在问题!大家应该有批评的权利!!!
IBM \微软\Oracle这些大公司之间有资格相互抨击,但无论哪个公司,对我来说其技术成就都是高山仰止!
你关于技术的观点 我都可以认同 (毕竟大家的角度和经历不一样)
但是 这种 "你做不到或者做不到更好, 就没有资格批评别人" 的逻辑是极其错误的.
按照这个逻辑 我们没有资格说iphone比山寨机好 因为我们自己动手做不出山寨机
按照这个逻辑 我们老百姓永远也没有资格去批评"正厕" 批评"正府" 了, 因为让你当"国加煮习"你未必就比"掏歌"做的好.
按照这个逻辑 90%的批评都是不应该存在的
批评是自由也是权利 你说对吗
慢与不慢只是相对而言,取决于你要做什么样的应用以及你的应用的界面复杂程度。如果仅仅是简单的数据呈现和一般的表单提交,就像Flex例子里面的那种界面,速度还是可以接受的。如果界面需要创建大量的UI元素,速度的问题就要好好衡量一下了。
IBM \微软\Oracle这些大公司之间有资格相互抨击,但无论哪个公司,对我来说其技术成就都是高山仰止!
我觉得 vii779 的意思应该是 "如果能绑定值就好了"
或者说如果支持 color="表达式" (让{...}可以类似 jsp里的 <%=%>) 就好了
确是这个意思,早期的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会带来性能问题。您有更好的不损失性能又能达到效果的方案吗,请指出来,但有一个要求,要最简单,至少不要超过我写的例子的那个复杂度,让刚入门的新手都能方便的做到。
希望您能看懂我例子之外所阐述的一些想法,而不仅仅只是陷入对技术实现的一些细节探讨。
我觉得 vii779 的意思应该是 "如果能绑定值就好了"
或者说如果支持 color="表达式" (让{...}可以类似 jsp里的 <%=%>) 就好了
原来您是这样理解Flex组件开发的,难怪!
不妥之处欢迎指正,期待您的高见。
希望大家不要只注意我文中“愤青”的一方面,而忽视文中提到的那些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上曾经说过:
引用
AIR的伟大之处在于可以让广大熟悉html编程的人也可以快速的掌握开发客户端软件的能力. 这是好事.熟悉html开发人员要比熟悉SWING .net(桌面开发)的人多很多
苹果有浏览器 有操作系统 有硬件,google有浏览器 有操作系统 有硬件,微软亦然。所以他们在谈论起在“互联网应用的UI要使用什么技术”时 明显有更大的话语权和更足的底气。而Adobe能拿得出手的只有需要寄人篱下的“flash”。所以AIR对于adobe的意义还是很大的。
虽然外界一直把HTML5当做 flash的对手偶.但是adobe千万不能这样看,adobe应该把html5变成自己的武器,让旗下的产品加强对html5的支持...好吧,我承认我太过迷恋AIR+Ajax的开发模式了...
(从最新发布的cs5的特性来看 adobe已经意识到这点了 GJ! XD)
我在AIR里用js+html5 canvas开发一个动画示例,在chrome safari中能跑到每秒90帧左右,在AIR里勉强18帧(且很不稳定).抱怨一下.我实在是没地方抱怨了
突然发现 我搞AIR+Ajax开发好尴尬. 纯Web开发流 纯Native桌面应用开发流 都不待见我.而Adobe流又都是搞flash的 更是一副跟我势不两立的架势.我好无辜...
google chrome捆绑flash也只是暂时的,当他发现这么做并不会帮助他进一步扩大市场占有率时 他随时都可以放弃这种捆绑
adobe的flash需要运行在别人的浏览器和操作系统里 而且这个“别人”还是adobe的竞争对手…那被别人耍被别人欺负被别人当作博弈的筹码就不足为奇了.
....
我在推特上的话 可能只是一些牢骚 只是一些主观视角强烈的妄语,但是至少说明我----一个曾经的AIR坚决的拥护者 已经开始对它厌倦了.
================================
ExtJS 的官方IDE已经抛弃AIR了 使用了 QTWebkit
google的chrome 开始支持 native client技术了 html5 webgl也来了
摆在我面前的选择真的很多 AIR 我是不是应该放弃你了?
================================
adobe 如果想在未来的互联网领域内占有一席之地 拥有一定的话语权.
AIR 应该是一部很关键的棋子
用更加开放的态度去拥抱HTML5才是王道.
(例如让AIR 和 dreamweaver更好的支持html5的特性 开发出基于html5 canvas/svg的动画制作工具 等等,
甚至做一个 浏览器 --- AIR都可以做出来 做浏览器自然也不是问题...)
================================
好吧 我承认我的担心有点多余.
靠着ps ai pdf 这些东西 adobe 就已经可以把自己喂的很饱了.
好吧 我知道我的牢骚很傻很BI ,
闪客们靠着"世界上98%的计算机都装有flash插件"这句话 就可以让自己心满意足 高枕无忧了
恩 各位 adobe的粉丝们 无视我吧.
====================
补充:
我本人 不会flash (只会一点as3 摆弄过一阵flex), 也不打算深入学习这项技术
但是我 对flash并没有敌对情绪 我一直觉得 flash在很多领域是无法被替代的.
就算未来浏览器很NB了 可以在浏览器里面看电影 听音乐 玩使命召唤, 那flash也不会消亡.
而且会活得很长很长, flash的寿命绝对比目前所有的闪客们的职业生涯要长久.
但是 adobe 必须面对html5的挑战
不管flash的卫道士们 怎样高喊"HTML5不是flash杀手" "flash无法被替代", "html5的到来还很漫长" "html5的统一化 标准化更漫长"...
html5 都是adobe无法回避的.
与其酸酸的去说 "html5将把互联网带入黑暗"(详见这里) 不如用开放的胸怀去接纳它.
评论
78 楼
115300111
2011-07-31
air with ajax 教程还有后续吗?
77 楼
yunzhongxia
2011-01-13
从事flex开发快2年了,来说说我对flex的感觉。做简单的MIS系统勉强还可以,但是对于复杂的系统就很艰难了。作为富客户端的技术,flex根本没有做到给用户“富”的感觉。DataGrid等不能直接复制内容,组件本身存在的一些bug,flex sdk变化这么快就是因为bug太多,在我们的开发中遇到过很多问题,flex做企业级开发实在有很多问题。现在平台对flex封装了很多东西,如果完全抛弃flex也很心痛。flex想说爱你不容易呀!
76 楼
inshua
2010-11-02
flex 设计的最经典的应该是 view stack 了。
as 烂的不可救药,幸好及时抛弃了它。
as 烂的不可救药,幸好及时抛弃了它。
75 楼
damoqiongqiu
2010-11-02
杯具,我应该早点看到这个文,我TMD今天还在用AIR倒腾JS,一点不爽,F**K。
74 楼
fu80008
2010-05-02
哎,我也只能说air的确四不像。air真2
73 楼
arlxy
2010-04-15
前段时间做了做了两个基于AIR 2.0 BETA2 SDK&FLEX SDK 3.2的项目
FLEX AIR确实不适合做效率要求较高的项目
如果是用户体验要求比较另类FLEX当然是开发方的首选
FLEX AIR确实不适合做效率要求较高的项目
如果是用户体验要求比较另类FLEX当然是开发方的首选
72 楼
hsbcnet
2010-04-14
就是一个版面显示几个到几十个货币对,价格在嗖嗖的更新而已。
不过我不是做开发。。。
慢与不慢只是相对而言,取决于你要做什么样的应用以及你的应用的界面复杂程度。如果仅仅是简单的数据呈现和一般的表单提交,就像Flex例子里面的那种界面,速度还是可以接受的。如果界面需要创建大量的UI元素,速度的问题就要好好衡量一下了。
不过我不是做开发。。。
vii779 写道
hsbcnet 写道
Flex这么慢吗?我公司用他来做UI哦
慢与不慢只是相对而言,取决于你要做什么样的应用以及你的应用的界面复杂程度。如果仅仅是简单的数据呈现和一般的表单提交,就像Flex例子里面的那种界面,速度还是可以接受的。如果界面需要创建大量的UI元素,速度的问题就要好好衡量一下了。
71 楼
vii779
2010-04-14
ltian 写道
vii779 写道
fins 写道
discolt 写道
理解Flex有误啊, 在Flex{...}里是绑定的属性而不是值。
如果你想这样做,组件式开发的思想新增一个对象,颜色value绑定{data}。
color={对象的value}
如果你想这样做,组件式开发的思想新增一个对象,颜色value绑定{data}。
color={对象的value}
我觉得 vii779 的意思应该是 "如果能绑定值就好了"
或者说如果支持 color="表达式" (让{...}可以类似 jsp里的 <%=%>) 就好了
确是这个意思,早期的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组件也是一个痛苦的过程...
70 楼
ltian
2010-04-14
vii779 写道
fins 写道
discolt 写道
理解Flex有误啊, 在Flex{...}里是绑定的属性而不是值。
如果你想这样做,组件式开发的思想新增一个对象,颜色value绑定{data}。
color={对象的value}
如果你想这样做,组件式开发的思想新增一个对象,颜色value绑定{data}。
color={对象的value}
我觉得 vii779 的意思应该是 "如果能绑定值就好了"
或者说如果支持 color="表达式" (让{...}可以类似 jsp里的 <%=%>) 就好了
确是这个意思,早期的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规范组写过邮件,如果他们觉得有道理,他们会有回应的,否则也会说出为什么不!
69 楼
znjq
2010-04-14
上升到这个高度,话题可以打住了.
小胖"恨铁不成钢"的心情可以理解,大公司考虑问题有自己的出发点,不仅仅是技术上的原因.就像老乔说的adobe那么不思进取,坚决抵触adobe进入apple,商业利益上的冲突是关键的.
看了iphone os4 sdk新的规定,cs5中的转换iphone应用简直就是个杯具
小胖"恨铁不成钢"的心情可以理解,大公司考虑问题有自己的出发点,不仅仅是技术上的原因.就像老乔说的adobe那么不思进取,坚决抵触adobe进入apple,商业利益上的冲突是关键的.
看了iphone os4 sdk新的规定,cs5中的转换iphone应用简直就是个杯具
68 楼
ltian
2010-04-14
fins 写道
ltian 写道
windywindy 写道
应乔布斯的话:Adobe不思进取!
IBM \微软\Oracle这些大公司之间有资格相互抨击,但无论哪个公司,对我来说其技术成就都是高山仰止!
你关于技术的观点 我都可以认同 (毕竟大家的角度和经历不一样)
但是 这种 "你做不到或者做不到更好, 就没有资格批评别人" 的逻辑是极其错误的.
按照这个逻辑 我们没有资格说iphone比山寨机好 因为我们自己动手做不出山寨机
按照这个逻辑 我们老百姓永远也没有资格去批评"正厕" 批评"正府" 了, 因为让你当"国加煮习"你未必就比"掏歌"做的好.
按照这个逻辑 90%的批评都是不应该存在的
批评是自由也是权利 你说对吗
你说的对!我的逻辑是存在问题!大家应该有批评的权利!!!
67 楼
fins
2010-04-14
ltian 写道
windywindy 写道
应乔布斯的话:Adobe不思进取!
IBM \微软\Oracle这些大公司之间有资格相互抨击,但无论哪个公司,对我来说其技术成就都是高山仰止!
你关于技术的观点 我都可以认同 (毕竟大家的角度和经历不一样)
但是 这种 "你做不到或者做不到更好, 就没有资格批评别人" 的逻辑是极其错误的.
按照这个逻辑 我们没有资格说iphone比山寨机好 因为我们自己动手做不出山寨机
按照这个逻辑 我们老百姓永远也没有资格去批评"正厕" 批评"正府" 了, 因为让你当"国加煮习"你未必就比"掏歌"做的好.
按照这个逻辑 90%的批评都是不应该存在的
批评是自由也是权利 你说对吗
66 楼
vii779
2010-04-14
hsbcnet 写道
Flex这么慢吗?我公司用他来做UI哦
慢与不慢只是相对而言,取决于你要做什么样的应用以及你的应用的界面复杂程度。如果仅仅是简单的数据呈现和一般的表单提交,就像Flex例子里面的那种界面,速度还是可以接受的。如果界面需要创建大量的UI元素,速度的问题就要好好衡量一下了。
65 楼
hsbcnet
2010-04-14
Flex这么慢吗?我公司用他来做UI哦
64 楼
ltian
2010-04-14
windywindy 写道
应乔布斯的话:Adobe不思进取!
IBM \微软\Oracle这些大公司之间有资格相互抨击,但无论哪个公司,对我来说其技术成就都是高山仰止!
63 楼
windywindy
2010-04-14
应乔布斯的话:Adobe不思进取!
62 楼
vii779
2010-04-14
fins 写道
discolt 写道
理解Flex有误啊, 在Flex{...}里是绑定的属性而不是值。
如果你想这样做,组件式开发的思想新增一个对象,颜色value绑定{data}。
color={对象的value}
如果你想这样做,组件式开发的思想新增一个对象,颜色value绑定{data}。
color={对象的value}
我觉得 vii779 的意思应该是 "如果能绑定值就好了"
或者说如果支持 color="表达式" (让{...}可以类似 jsp里的 <%=%>) 就好了
确是这个意思,早期的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会带来性能问题。您有更好的不损失性能又能达到效果的方案吗,请指出来,但有一个要求,要最简单,至少不要超过我写的例子的那个复杂度,让刚入门的新手都能方便的做到。
希望您能看懂我例子之外所阐述的一些想法,而不仅仅只是陷入对技术实现的一些细节探讨。
61 楼
fins
2010-04-14
discolt 写道
理解Flex有误啊, 在Flex{...}里是绑定的属性而不是值。
如果你想这样做,组件式开发的思想新增一个对象,颜色value绑定{data}。
color={对象的value}
如果你想这样做,组件式开发的思想新增一个对象,颜色value绑定{data}。
color={对象的value}
我觉得 vii779 的意思应该是 "如果能绑定值就好了"
或者说如果支持 color="表达式" (让{...}可以类似 jsp里的 <%=%>) 就好了
60 楼
discolt
2010-04-14
理解Flex有误啊, 在Flex{...}里是绑定的属性而不是值。
如果你想这样做,组件式开发的思想新增一个对象,颜色value绑定{data}。
color={对象的value}
如果你想这样做,组件式开发的思想新增一个对象,颜色value绑定{data}。
color={对象的value}
59 楼
vii779
2010-04-14
ltian 写道
vii779 写道
关于setStyle的问题,都建议尽量不要调用,会导致性能低下。
假设我写了一个renderer,里面有一个lable组件,我希望根据数值的大小显示不同的颜色,比如大于100显示红色,小于100显示蓝色,很自然的我会这么写
很遗憾这样是行不通的,首先样式是不支持值绑定的。好吧,hack一把让样式支持值绑定,然后你又会被告知setStyle会带来低下的性能问题。
我想这是一个再普通不过的需求了,解决这个问题会有好几种办法,要么写复杂的AS3代码,要么再冗余一个Label,但是不论哪一种都不如上面来的直接简单和自然。如果setStyle没有性能问题,如果样式支持值绑定,整个世界就变的清净了。话说回来了,这个世界又那会有十全十美的东西,要么您就期待Flex一点一点慢慢改进吧,要么您就去封装自己的组件库吧。
顺便一提,Flex默认的几个Renderder都是用As3写的,创建和布局逻辑代码不少,如果你想继承一下扩展一把,那是不行地,里面几个关键的变量和方法都是私有的。期望Flex以后在设计API的时候,能够抱着更加开放的态度,以利于大家扩展,才有可能形成一个成熟的组件库市场的氛围。
假设我写了一个renderer,里面有一个lable组件,我希望根据数值的大小显示不同的颜色,比如大于100显示红色,小于100显示蓝色,很自然的我会这么写
<mx:Label text="{data}" color="{data>100?0xff0000:0x0000ff}"/>
很遗憾这样是行不通的,首先样式是不支持值绑定的。好吧,hack一把让样式支持值绑定,然后你又会被告知setStyle会带来低下的性能问题。
我想这是一个再普通不过的需求了,解决这个问题会有好几种办法,要么写复杂的AS3代码,要么再冗余一个Label,但是不论哪一种都不如上面来的直接简单和自然。如果setStyle没有性能问题,如果样式支持值绑定,整个世界就变的清净了。话说回来了,这个世界又那会有十全十美的东西,要么您就期待Flex一点一点慢慢改进吧,要么您就去封装自己的组件库吧。
顺便一提,Flex默认的几个Renderder都是用As3写的,创建和布局逻辑代码不少,如果你想继承一下扩展一把,那是不行地,里面几个关键的变量和方法都是私有的。期望Flex以后在设计API的时候,能够抱着更加开放的态度,以利于大家扩展,才有可能形成一个成熟的组件库市场的氛围。
原来您是这样理解Flex组件开发的,难怪!
不妥之处欢迎指正,期待您的高见。
发表评论
-
小胖的 Adobe AIR with Ajax 实例课堂(三)
2009-12-29 23:48 3725小胖的 Adobe AIR with Ajax 实例课堂(三) ... -
关于"小胖的 Adobe AIR with Ajax 实例课堂"的第三课
2009-12-27 02:45 1562"小胖的 Adobe AIR with Ajax ... -
小胖的 Adobe AIR with Ajax 实例课堂(二)
2009-12-25 02:38 4148小胖的 Adobe AIR with Ajax 实例课堂(二) ... -
小胖的 Adobe AIR with Ajax 实例课堂(一)
2009-12-25 00:23 5723小胖的 Adobe AIR with Ajax 实例课堂(一) ... -
AIR+Ajax 开发的一些细小的经验/心得/注意事项(最后更新:10年1月7日)
2009-10-02 01:36 2965AIR+Ajax 开发的一些细小 ... -
[3月25日] JE Talker 0.9 ★ JavaEye闲聊客户端 发布
2009-03-25 16:12 2589============================ JE ... -
[3月13日] JE Talker 0.8 ★ JavaEye闲聊客户端 发布
2009-03-13 13:51 1832============================ JE ... -
[2月27日] JE Talker 0.3 ★ JavaEye闲聊客户端 发布
2009-02-27 14:51 1732基本说明参见 0.1版. 0.1版本地址: http://f ... -
[发布]JE Talker 0.1 ★ 第一款JavaEye客户端应用 发布
2009-02-24 17:15 6870最新 0.9版 发布了 参见 ... -
JETalker 在linux下不支持透明的原因
2009-02-23 10:42 1675转一篇文章 关于Adobe A ... -
关于JE Talker for Windows (javaeye闲聊客户端) 的简单说明
2009-02-22 20:48 2055JE Talker 是基于 air+extjs ... -
JE Talker ("JE闲聊"客户端) 第二版 截图
2009-02-22 08:07 2556忙了一夜 初见成效 采用 AIR + EXTJS 开发 ... -
学习flex&as的记录(持续更新)
2008-11-14 16:49 1996这次真的要学Flex 和 as 了 突然觉得 在ajax这一 ...
相关推荐
Wiley.Adobe.AIR.Bible.Oct.2008.eBook-DDU.pdf
5. 安全性:通过沙箱模型保护系统安全,限制应用程序对系统资源的访问。 在实际应用中,Adobe AIR曾被广泛用于开发各种桌面应用,但由于HTML5的兴起和Adobe逐渐转向专注于Web标准,AIR的重要性有所下降。然而,对于...
在安全性方面,Adobe AIR提供了沙箱模型,限制了应用程序对系统资源的访问,以保护用户的计算机安全。然而,用户仍需保持Adobe AIR runtime的更新,以确保最新的安全补丁被应用,防止潜在的安全威胁。 总之,Adobe ...
WiFi ADB Debug Over Air 是一款方便开发者进行远程Android设备调试的工具,其最新版本为v3.0.6。此应用程序允许用户通过无线网络(WiFi)连接到Android设备,进行ADB(Android Debug Bridge)调试,极大地提升了...
Adobe.AIR.for.JavaScript.Developers.Pocket.Guide
AirPrint 是可以让应用软件通过 Apple 的无驱动程序打印体系结构,创建无损打印输出的 Apple 技术。所有支持打印的 iOS 内建 app 均使用 AirPrint。App Store 上使用 iOS 打印系统的 App 也使用 AirPrint。官方 Air...
要使用“flashair_sync-0.0.22.tar.gz”,你需要先解压文件,通常可以使用tar命令行工具或者相关的图形界面工具来完成。解压后,会得到一个包含setup.py文件的目录,这是Python项目的配置文件,用于构建、打包和安装...
《Unity3D游戏开发:深入理解Air Strike Starter Kit飞机空战项目》 Unity3D作为一款强大的跨平台游戏开发引擎,被广泛应用于各种类型的游戏制作,包括但不限于2D游戏、3D游戏、VR游戏以及AR游戏。Air Strike ...
如果你有台iPhone手机, 或者苹果iPad平板电脑,那么你可以很方便得利用苹果iOS系统内置AirPrint功能WiFi无线打印照片,Word,PDF等各种文件到你的Air Printer打印机,但有个前提是你的打印机必须支持苹果Air Print...
如果你有台iPhone手机, 或者苹果iPad平板电脑,那么你可以很方便得利用苹果iOS系统内置AirPrint功能WiFi无线打印照片,Word,PDF等各种文件到你的Air Printer打印机,但有个前提是你的打印机必须支持苹果Air Print...
为了在本地环境中使用`air_kit`,开发者通常会使用`pip`(Python的包管理器)来安装这个库,命令可能是`pip install air_kit-0.1.5.tar.gz`,或者如果已经解压,可以使用`python setup.py install`。如果想在项目中...
### Wrox.Beginning.Flash.Flex.and.AIR.Development.for.Mobile.Devices #### 简介 本书《Wrox.Beginning.Flash.Flex.and.AIR.Development.for.Mobile.Devices》是一本面向初学者的移动设备开发教程,由Jermaine G...
根据提供的文件信息,“Wrox.Adobe.AIR.Create.Modify.Reuse.Apr. 2008.pdf”是一本关于Adobe AIR应用开发的专业书籍。本书由Marc Leuchner、Todd Anderson和Matt Wright共同编写,由Wiley Publishing, Inc.出版。...
“win-airplay.zip”是一个专为Windows系统设计的AirPlay服务器模拟器,它可以让你的Windows电脑变身成为AirPlay接收器,接收并显示来自iOS设备的屏幕内容。下载并解压这个压缩包后,你将得到一个名为“win-airplay...
这是最新版本的,网上流传的基本都是1.3版。...在Windows下安装本程序,让系统支持Airprinter功能,可以共享打印机给苹果手机操作系统IOS,IPhone,IPad,都可以直接选择打印,然后选择打印机,直接打印。 方便极了!
《PyPI官网下载:cognite-air-workflow-3.1.1.tar.gz——深入了解Python库的使用与管理》 PyPI(Python Package Index),是Python开发者的重要资源库,它为全球的Python开发者提供了一个发布、查找和安装Python...
例如,你可以下载“Developing_AIR_Apps_for_Android.pdf”了解基本流程,查阅“ActionScript 3.0 Reference for the Adobe Flash Platform”学习语言规范,通过“Optimizing Performance for the Flash Platform”...
想在PC上启用AirPrint的Windows用户注意了,一款新工具“AirPrint Activator”将实现你的愿望。 该工具同时兼容32位、64位Windows设备,完全安装仅需三个简单步骤。 Step 1: 选择系统。 Step 2: 在...
Release_Notes_AIR_SDK_51.1.2.pdf