Adobe Max 2009大会上有一些地方值得我们注意,有一个专题会议专门帮助我们解决如何过渡到Flex4以及Flex4的新特性。 Packages 旧的mx包仍然可以用,但是现在所有新的东西都被放入了spark包里。为什么要用两个不同的包?起初他们把所有的这些都放在相同的包内,但是新的组件都采用不同的名空间前缀,所以考虑到效果,还是分开来了。 Graphics 你可以使用MXML直接添加图元,随着新的FXG格式文件的使用,你可以直接通过代码引入矢量图。酷!FXG图像对于一些图标和简单的图像非常有用,因为他绘制起来比MXML图像容器要快得多。 Flex States 之前的状态变化,都是使用AddChild和RemoveChild的,现在你可以直接在组件中使用includeIn=""和excludeIn=""属性来控制。不仅如此,你还可以使用点操作符加不同的状态来设置不同状态下的组件的属性,比如: title.mystate=”Title”.这看起来是个很大的变化。 Skinning 组件可以使用不同的皮肤文件,这个可以帮助你快速的为你的自定义组件设置皮肤。 过渡中需要注意的地方(Common migration issues) 现在的类型选择器需要你指定名空间了,比如,你现在为一个按钮添加样式,但是Flex不知道你定义的是Spark的按钮还是Halo的按钮。所以你需要指定名空间以确定要更新样式的对象。 你必须使用Flash10编译。当然,这个对于使用Flex Builder4和Flex4的你来说不是什么问题。 Application.application现在被改名成了FlexGlobals.topLevelAppliction.这只不过是一个直接的改名而已。 “Declarations”标签。在Flex4当中,所有非可视化或者默认属性都必须在fx:Declarations标签内,甚至包括RadioButtonGroup, Formatters, Effects, RPC stuff, Validators等等,都必须如此。 现在默认的主题都是Spark的了,这与老的Halo的主题有很大的区别,你可以选择使用回老的主题:你可以在工程属性中选择:“Use Flex 3 compatibility mode”或者进入“Flex Theme”面板进行改变 (推荐这种方式)。 如果你过渡到Flex4,尽可能多的使用Spark组件,他们能够跟MX组件很好的混合工作。不过还是有要注意的地方:(1)MXML图元不可以被直接放入MX组件中,需要包装成组。(2)不可以把MX组件放入Spark容器中。(3)MX的effects不能直接作用于Spark图元。(4)MX导航需要使用NavigatorContent组件。 另外需要注意的是: Spark组件不支持Halo主题。 不能使用spark组件作为itemRenderers来为MX List组件绘制。 MX和Spark使用的API是不同的(比如 addChild 和 addElement)! 当你一起使用MX和Spark组件时,由于使用的主题不同,你可能会发现文本是不同表现形式的。 等等。。。 总结:所以当你过渡你的应用程序从Flex3到Flex4时,还是存在一定难度的。不能操之过急,需要你慢慢改变你神经突触的习惯思维方式(好寒)。但是这些变化对于将来的Flex Framework都是有益无害的。 |