我当前的发展栈的MySQL + iBatis的春+弹簧+ BlazeDS集成1.01 + BlazeDS的3.2和Flex 3与伴侣0.8.9框架。 现在,Flash Builder 4的beta 2版本已经出来了。 还有像数据中心的开发(DCD),表单生成等酷炫功能...你知道春天BlazeDS集成如何与BlazeDS的4? 什么伴侣? 有没有使用Flex 4的任何问题? DCD如何面对与队友eventmaps。 我知道这是更好地尝试一下自己,但我只是想检查一下是否有人曾经试图迁移的Flex 4.如果有什么问题? 你有没有注意到任何生产率加速? 谢谢。
Answer 1:
我不能告诉你有关迁移第三方组件任何东西。 我不使用你提到的那些。
我可以告诉你,但是,你不能简单地加载了现有的项目导入到Flash Builder 4,SDK更改为4.0,并期望它重新编译。 事情数量庞大的Flex 4中发生了变化,经常不兼容。
下面是我碰到迄今为止的:
您现在有两个平行的组件库,Spark和MX。 MX是老Flex 3的组件库,有时也被称为光晕,虽然这是默认皮肤的技术上只是名字。 火花是新的Flex 4组件库,其仅部分地替换MX。
他们互操作。 你被允许在一个单一的应用程序同时使用,你可以做这样的事情在MX布局容器,如把Spark组件
ViewStack
。 也有一个应用程序,它可能在使用星火一面,另一MX,没有烦恼担心,因为他们没有在GUI水平互操作的自然区划。 对话框是这样的,比如。他们所做的这一切的原因是为了支持你已经听到这个新的皮肤东西: Flash Catalyst中 , FXG ,和所有。 如果您使用的股票晕皮肤,我没有看到火花的问题给你,除了一个事实,即它的未来 。
(旁白:什么是降价的语法来获得精灵的盎司嗡嗡声回音效果?)
琼拉弗蒂(的Flex SDK质量铅)有贵重物品, Flex 3的和Flex 4之间的差异 。 在第4页 ,她有一个表,列出了Flex 3 MX组件没有被替换Spark组件Flex 4中大部分的这些都没有外观的自己,像
Accordion
,所以你不必剥他们,或事情像对话框,像Alert
。 (你应该通过本文的其余部分阅读。它涵盖的东西我不知道,因为我还没有碰到所有的差异呢。)说到外观,只有两个从Flex 3的对MX皮肤Flex 4中,仍然支持更加丰富多彩MX的皮肤都走了,但有一组新的基于多彩火花皮肤炫耀一些你可以做的事情与FXG和这样的。 如果你真的很喜欢他们删除者之一,你可以重新无疑领跑星火,但它不是现成可用的。
很多事情已经改名 ,并为MX组件一些星火替换有不同的接口等方面有不同的名称 。 例如,要完全转移到星火,你必须改变你
VBox
下载到VGroup
秒。 有很多这样的恼人的小差异。因为整个双GUI库的事情,Adobe公司发现自己像一堆MXML标签的
<Script>
和<Style>
这实际上不是MX,这很好的工作了星火的一部分。 不是有重复的标签集合,他们搬到这些到一个新的XML命名空间。 这对于那些做现有的基于MX-应用的分段迁移的问题,因为这意味着你还在使用mx
为MX组件库的别名,所以这些标记是常见的两种库都必须进行重命名。 新的XML命名空间的默认这些标签是fx
,所以每次<mx:Script>
已被重命名为<fx:Script>
等等。 IDE不会为你在导入项目做到这一点。 你只要找到他们一个接一个,当你试图让你导入的项目建设。如果您打算完全转移到星火,你可以在这里避免一些痛苦。 除了接受的
fx
在非MX标签默认命名空间别名,你可以让它继续使用mx
,因为你不会需要,对MX,和Spark使用s
作为其默认。安装Flash Builder 4中后,你的首要任务应该是创造一个全新的项目,所以你可以研究它,并复制粘贴之类的东西从它的命名空间,这些声明。
与Spark和命名空间的混乱整个MX的另一个后果是,你的CSS可能需要调整。 Flex有一个非标准扩展到CSS这一点,它看起来像这样:
@namespace mx "library://ns.adobe.com/flex/mx"; mx|Application { ....
所有名称空间的URL已经Flex 3的和Flex 4之间改变两者,并且在过程中的Flex 4测试过程再次改变的至少一个实例。
http://www.adobe.com/2006/mxml
现在http://ns.adobe.com/mxml/2009
library://ns.adobe.com/flex/halo
现在library://ns.adobe.com/flex/mx
在
local()
的形式在CSS由他们共同的名字,指定嵌入字体名称不起作用了。 你必须使用url()
的形式,并给予路径字体文件。提防这里陷阱是,这意味着,如果你要嵌入单个字体的多个变体(如正常和大胆的权重)以前的代码中提到的相同的字体的名字,但你的新会指向两个不同的文件,因为两个砝码不在同一.TTF或杂项文件的文件。 举例来说,这样的:
@font-face { src: local("Verdana"); fontFamily: VerdanaEmbedded; fontWeight: normal; } @font-face { src: local("Verdana"); fontFamily: VerdanaEmbedded; fontWeight: bold; }
必须改变这样:
@font-face { src: url("/Library/Fonts/Verdana.ttf"); fontFamily: VerdanaEmbedded; fontWeight: normal; } @font-face { src: url("/Library/Fonts/Verdana Bold.ttf"); fontFamily: VerdanaEmbedded; fontWeight: bold; }
在Flex 3,编译器猜测两个.TTF字体文件上面的代码指的是基于所述
fontWeight
属性。 在Flex 4中,编译器让你告诉它明确。如果您在应用程序中嵌入字体,并继续使用MX控件,文本很可能要么消失或恢复到默认字体。 这是因为,在默认情况下,Flex 4中使用不同的字体在引擎盖下嵌入机制,支持改进的字体在Flash Player 10的渲染引擎要在旧的方式嵌入字体让老MX控件仍然可以使用它,你必须将设置
embedAsCFF
CSS属性为false
。各州机制是完全不同的。 这Flex 3的代码:
<mx:State name="alternate"> <mx:SetProperty target="{myField}" name="editable" value="false"/> </mx:State> .... <mx:Form ...> <mx:TextInput id="myField"/> .... </mx:Form>
成为该Flex中:
<mx:State name="alternate"/> .... <mx:Form ...> <mx:TextInput id="myField" editable.alternate="false"/> .... </mx:Form>
新的方式,使我更有意义,因为它把在组件标签本身所有的单个组件的状态,而不是一路在MXML文件中详细顶部
<mx:State>
块,但移植到新机制是有点磨的。 转换不是由IDE自动的,但它真的可以。有一些标签不再允许作为直接子女
<Application>
标记。 这些可分为几大类:验证,效果等您现在可以收拾这些成一个新<fx:Declarations>
标签,就像这样:<fx:Declarations> <mx:Dissolve id="myTransition" duration="100" target="{this}"/> </fx:Declarations>
有一个在Flash Builder中一个新的项目选项,你可以继续使用Flex 3.5 SDK独自一人,毫无生气可言,更容易迁移。 这是很好的初步测试,但在某些时候,你要往前走,此时你有上述所有抗衡。
新的编译器似乎并没有那么多快对我来说,无论是。 我没有基准,只是事情的感觉,这是真正重要的东西给我,因为它仍然让我感觉像捶我的头我的办公桌上。 :)你肯定不会用我的发展中的其他7个内核。 哎呀。
Answer 2:
这里的一些事情可能帮助:
- 最新的BlazeDS的版本为3.2.0.3978。 我没有听说过新版本的公告。
- 既然你是保持BlazeDS的相同版本,移植现有代码到Flex 4应该有你的后端(春天BlazeDS的整合,iBATIS的,MySQL的,等等)没有影响。
- 队友还没有正式支持Flex 4.我有,当我试图切换编译错误。 下面是一个讨论的一个链接的解决方法 ,并链接到一个Flex 4的端口 。
祝好运!