customizations much more straightforward. Here is a table showing Flex 3 Halo components and their Flex 4 beta Spark counterparts:
Flex 3 Halo Component
Flex 4 beta Spark Component
mx.controls.Button
sparkponents.Button
mx.controls.ButtonBar
sparkponents.ButtonBar
mx.controls.CheckBox
sparkponents.CheckBox
mx.controls.ComboBox
sparkponents.DropDownList (w/o editability)
mx.controls.HorizontalList
sparkponents.List (with a HorizontalLayout)
mx.controls.HRule
spark.primitives.Line
mx.controls.HScrollBar
sparkponents.HScrollBar
mx.controls.HSlider
sparkponents.HSlider
mx.controls.Image
spark.primitives.BitmapImage
mx.controls.LinkBar
sparkponents.ButtonBar (with a custom skin)
mx.controls.LinkButton
sparkponents.Button (with a custom skin)
mx.controls.List
sparkponents.List
mx.controls.NumericStepper
sparkponents.NumericStepper
mx.controls.RadioButton
sparkponents.RadioButton
mx.controls.RadioButtonGroup
sparkponents.RadioButtonGroup
mx.controls.TextArea
sparkponents.TextArea
mx.controls.TextInput
sparkponents.TextInput
mx.controls.TileList
sparkponents.List (with a TileLayout)
mx.controls.ToggleButtonBar
sparkponents.ButtonBar
mx.controls.VideoDisplay
sparkponents.VideoPlayer
mx.controls.VRule
spark.primitives.Line
mx.controls.VScrollBar
sparkponents.VScrollBar
mx.controls.VSlider
sparkponents.VSlider
mx.core.Application
sparkponents.Application
mx.core.Window
sparkponents.Window
mx.core.WindowedApplication
sparkponents.WindowedApplication
mx.containers.Canvas
sparkponents.Group
mx.containers.HBox
sparkponents.HGroup
mx.containers.Panel
sparkponents.Panel
mx.containers.Tile
sparkponents.Group (with a TileLayout)
mx.containers.VBox
sparkponents.VGroup
Adobe encourages you to use Halo components and containers along with Spark components. Because Adobe continues to build components atop the same base class (UIComponent), there should be full interoperability between Spark and Halo. Here is a table of the components and containers that do not currently have direct Spark equivalent classes.
Flex 3 classes with no direct Flex 4 beta counterpart
mx.controls.Alert
mx.controls.ColorPicker
mx.controls.DataGrid
mx.controls.DateChooser
mx.controls.DateField
mx.controls.Menu
mx.controls.MenuBar
mx.controls.PopUpButton
mx.controls.PopUpMenuButton
mx.controls.ProgressBar
mx.controls.RichTextEditor
mx.controls.TabBar
mx.controls.Tree
mx.containers.Accordion
mx.containers.ApplicationControlBar
mx.containers.ControlBar
mx.containers.DividedBox
mx.containers.Form
mx.containers.Grid
mx.containers.TabNavigator
mx.containers.TitleWindow
mx.containers.ViewStack
Changes in states syntax
Flex 4 beta has promoted the states functionality to a full MXML language feature. As a result, you will likely find states to be much more flexible and direct. The new states syntax is more inline, allowing state-specific changes to be specified in context. Here are the key differences in the Flex 4 beta syntax:
Only states are defined within the states array.
In the new states syntax, you cannot use de>AddChildde> and de>RemoveChildde>. Instead, you define a component's role in a particular state on the component itself using the de>includeInde> and de>excludeFromde> attributes.
In the following Flex 3 example, states are used to include a Button and remove a TextInput only when the de>currentStatede> of the document is de>submitStatede>. This approach can get very verbose with more complex states.
Here is the simpler Flex 4 beta code using de>includeInde> and de>excludeFromde>.
de>SetPropertyde>, de>SetStylede>, and de>SetEventHandlerde> have been replaced by a new dot syntax, which allows you to qualify MXML attribute values with a specific state identifier.
In the following Flex 3 example, the code defines a property, style, and event for a Button in de>submitStatede>.
de>handler="emptyDocument()" />
In Flex 4 beta, the code looks like this:
click.submitState="trace('done')" click.clearState="emptyDocument()"
label.clearState="clear" textDecoration.clearState="none"/>
A component can no longer be in an undefined or null state. By default, the first declared state is the initial state of a component.
The new syntax is available when a document uses the MXML 2009 language namespace. You cannot mix the legacy syntax and the new states syntax. The old syntax is available only in the MXML 2006 namespace.
Additionally, each component now supports a set of states defined in its skin class, which makes it simpler to apply visual changes depending on the state of a component. For example, if you look at the skin for the Spark Button, you will find the following states defined:
The ButtonSkin class defines what happens visually to a Spark Button in each one of these states.
This is only a brief introduction to the new Flex 4 beta states syntax. Visit the Enhanced States Syntax Spec to find more details.
更多推荐
flex 3 java_Flex4相对于Flex3的变化 - 唐@朝 - JavaEye技术网站
发布评论