Introduction
In Current builds of Gumbo, we avoid all naming collisions in our classes by prefixing any duplicate named classes introduced by Gumbo with the Fx prefix. THe community has spoken out loudly against this, and we need to drop the Fx prefix. Dropping the prefix introduces some technical problems (duplicate classes in the same package, duplicate classes in the MXML namespace), and some usability problems (confusion between the 'old' Button and the 'new' Button). Both of these problems will need to be solved via a reorganization and renaming of our classes and packages.
This document discusses proposed changes in three sections:
- Section 1: new namespace organization
- Section 2: Top Level Package Organization for the new Gumbo classes
- Section 3: enumerate names and packages for all new Gumbo classes. Most changes will be due to removing the Fx Prefix, but some additional usability changes will be included as well.
- Appendix: Detailed list of classes in each namespace.
New Namespace Organization
In addition to reorganizing packages, the newly overlapping component and effect names will require us to split the 2009 MXML namespace to prevent conflicts.
Gumbo will now ship with the following distinct namespaces:
MXML 2006
URI: http://www.adobe.com/2006/mxml
Default Prefix: mx
The legacy mxml language namespace used in previous versions of Flex. This namespace contains:
- language tags
- top level (built-in) types
- mx components
- rpc
- data services
- charts
As a language namespace, this namespace affects the way flex parses and compiles MXML. Only one language namespace can be used in an MXML document at a time.
MXML 2009
URI: http://ns.adobe.com/mxml/2009
Default Prefix: fx
The new mxml language namespace introduced as part of Gumbo. This namespace contains:
- language tags
- top level (built-in) types
- new Gumbo language tags
This is purely a language namespace, and does not contain component tags. As a language namespace, this namespace affects the way flex parses and compiles MXML. Only one language namespace can be used in an MXML document at a time.
Spark Components
URI: library://ns.adobe.com/flex/spark
Default Prefix: s
The new namespace for building spark based applications. This namespace contains:
- rpc
- data services
- spark
- TLF Text Framework
This namespace does not contain language tags, and must be used in conjunction with one of the mxml language namespaces.
MX Components
URI: library://ns.adobe.com/flex/mx
Default Prefix: mx
The non-language-version-specific namespace for using MX components and classes in your application. This namespace contains:
- rpc
- data services
- mx components
- mx air classes
- charts
This namespace can be used to bring MX components and classes into your spark based applications, or to build MX applications using the new 2009 version of mxml. This namespace does not contain language tags, and must be used in conjunction with one of the mxml language namespaces
Top Level Package Organization
As it stands today
The current packages in the flex 4 project list out like so:
mx.components
mx.core.
mx.effects
mx.events
mx.filters
mx.geom
mx.primitives
mx.layout
mx.skins
mx.states
mx.styles
mx.utils
Some specific notes:
- mx.states: There is one class in this package, which does not rely on any classes from the flex 4 swc. It should be moved into the framework project.
- mx.styles: This folder only exists to hold style metadata. THe metadata files should be moved to the spark.styles folder, and include files should be updated.
- mx.geom: This folder is empty, and should be removed.
- mx.components: This is where the Fx components that need to be renamed live. To date, we've grouped all of our new components into a single 'components' package under the mx namespace so they can be easily discovered. We have considered splitting this into a separate controls and containers package, as we did in MX. But in both the previous components ,and the new spark components, the line between controls and containers, esp. for data driven controls, becomes blurry, leaving the distinction meaningless.
- mx.effects: Many of the new Fx effects introduced into this package will have duplicate names once the Fx prefix is removed, and will need to be moved into a separate package. Moving them is complicated by the fact that developers will continue to use some of the effects in the mx package (Parallel, Sequence) but can't use all of them (most MX effects won't work on GraphicElements, for example).
- mx.graphics: The classes in this package are used heavily in the Gumbo model. Some of them, however, are legacy classes in mx.graphics that were introduced in Flex 3. If we choose to move these classes into a separate package, we will have to contend with the fact that core classes must remain in mx.graphics.
Goals
our package structure should accomplish the following goals:
- avoid duplicate names in the same package between MX and Gumbo classes.
- clearly lead developers towards the Gumbo classes. This is a complicated one, as there is no simple specific descriptive word that can be used in the package names. 'Skinnable', for example, describes the Spark components, but not the new effects, or layouts, or filters. The goal should not be for a developer to be able to identify these classes as 'better' or 'preferred' simply by looking at the package name, but rather that a developer, who knows they want to use spark, can easily identify the set of classes they should be paying attention to.
Branding (the usability kind, not the corporate kind)
In order to help a developer clearly identify classes in the 'new' framework, we will need to use a generic 'brand' identifier rather than a semantically meaningful name (see above). Two obvious choices come to mind: fx and spark. We chose fx as the prefix when we were prefixing class names because it was a good short option for something that customer were going to have to type over and over again. But fx is part of the flex builder brand, rather than part of the open source flex framework. Spark, on the other hand, is our 'official' name for the new component architecture and skinning model, so seems a more appropriate choice as the 'brand' used in the various package naming solutions proposed below.
Options
option 1, Minimal Solution: move spark components and effects into specific sub-packages
Take the position that spark is an extension of the existing framework, and should feel as much like first class citizens of the framework as any other component or class. For the most part, we leave the new classes and packages of spark as second level elements of mx. For the two areas that we have introduced replacement classes for existing parts of the framework -- components, and effects -- we push their packages down into a 'spark' sub-package.
mx.spark.components(...)
mx.core
mx.spark.effects(...)
mx.events
mx.filters
mx.primitives
mx.layout(...)
mx.skins.spark
mx.utils
pros: minimal disruption. avoids most complications around the relationship between core mx framework classes and new spark classes.
cons: relationship between spark components and the rest of the related classes -- graphics, layout, etc -- isn't clear. no single package identifies all the 'new' classes.
option 2, grouped sub-package: move all the spark packages into a sub-package of mx, similar to how charts work.
While spark is a first class part of the Flex framework, it is a constallation of classes meant to be used together. layouts, graphics, components, and effects are all closely related to each other, and it should be clear to developers that these classes together comprise a library. Clearly identify that by pushing all the new spark classes down into a second level 'spark' package.
mx.spark.components(...)
mx.spark.effects(...)
mx.spark.events
mx.spark.filters
mx.spark.primitives(...)
mx.spark.layout(...)
mx.spark.skins(...)
mx.spark.utils
pros: single package (sort of) easily identifies the 'new' framework classes. Keeps spark grouped under mx.
cons: demotes 'spark' to a subpackage of the framework, giving mx.controls prominence over mx.spark.controls. Splits tightly coupled classes like graphics and effects classes across two packages. (mx.grpahics and mx.spark.graphics).
option 3, grouped-top level package: move all the spark classes into a new top level package
Recognize that while spark is a first class part of the Flex framework, the eventual goal is for it to be a top level library that can live almost completely independent of the mx components. move all of the spark classes into their own top level spark package.
spark.components(...)
spark.core
spark.effects(...)
spark.events
spark.filters
spark.primitives(...)
spark.layout(...)
spark.skins(...)
spark.utils
pros: spark classes are clearly separated from classic MX components. spark is given top level prominence on equal footing with mx.
cons: some logical packages are split across mx. and spark. (i.e., mx.graphics and spark.graphics).
Graphics vs. Primitives
Either option 2 or 3 gives us a graphics package split across mx.graphics and (mx.)spark.graphics. Arguably, this will be confusing to developers. While there are other places spark users will have to dip into the mx hierarchy (especially in this initial release), graphics feels like a coherent package fragmented in two.
One possible solution would be to leave the stroke and fill classes (from both Flex 3 and Flex 4) in the mx.graphics package, and push all of the new graphic primitive classes into a new 'primitives' package (either mx.spark.primitives, or spark.primitives).
Proposal
Our current working proposal is a variation of Option 3, above. The general packages introduced by Spark will be:
spark.components
spark.core
spark.effects
spark.events
spark.filters
spark.layout
spark.primitives
spark.skins
spark.utils
The complete set of packages are:
spark.components
spark.components.supportClasses
spark.core
spark.effects
spark.effects.animation
spark.effects.easing
spark.effects.supportClasses
spark.effects.interpolation
spark.events
spark.filters
spark.layout
spark.layout.supportClasses
spark.primitives
spark.primitives.supportClasses
spark.skins.haloDefault
spark.skins.default
spark.utils
Class Renaming
Below is the complete table of classes in the Flex4 project, with their target package and class name after the renaming is complete. Many classes went through unscathed. Where changes were made, they are for one of the following reasons:
- changing the name to remove the FxPrefix
- changing the package to avoid a collision with other classes after removing the FxPrefix.
- reorganizing 'bucket' packages that have aggregated too many different types of functionality in one place.
- in one or two places, opportunistically fixing names no one likes
- moving base classes out of view when appropriate.
Version 8
| airframework package |
class name |
Destination package |
destination name |
Notes |
| mx.core |
FxWindowApplication |
spark.components |
WindowedApplication |
|
| mx.core.windowClasses |
FxTitleBar |
spark.components.windowClasses |
TitleBar |
|
| mx.skins.spark |
FxCloseButtonSkin |
spark.skins.default |
CloseButtonSkin |
|
| mx.skins.spark |
FxGripperSkin |
spark.skins.default |
GripperSkin |
|
| mx.skins.spark |
FxMacCloseButtonSkin |
spark.skins.default |
MacCloseButtonSkin |
|
| mx.skins.spark |
FxMacMaximizeButtonSkin |
spark.skins.default |
MacMaximizeButtonSkin |
|
| mx.skins.spark |
FxMacMinimizeButtonSkin |
spark.skins.default |
MacMinimizeButtonSkin |
|
| mx.skins.spark |
FxMaximizeButtonSkin |
spark.skins.default |
MaximizeButtonSkin |
|
| mx.skins.spark |
FxMinimizeButtonSkin |
spark.skins.default |
MinimizeButtonSkin |
|
| mx.skins.spark |
FxRestoreButtonSkin |
spark.skins.default |
RestoreButtonSkin |
|
| mx.skins.spark |
FxTitleBarSkin |
spark.skins.default |
TitleBarSkin |
|
| mx.skins.spark |
FxWindowedApplicationSkin |
spark.skins.default |
WindowedApplicationSkin |
|
| flex4 package |
class name |
Destination package |
destination name |
Notes |
| mx.components |
FxApplication |
spark.components |
Application |
|
| mx.core.windowClasses |
FxTitleBar |
spark.components.windowClasses |
TitleBar |
|
| mx.components |
DataGroup |
spark.components |
DataGroup |
|
| mx.components |
Group |
spark.components |
Group |
|
| mx.components |
HGroup |
spark.components |
HGroup |
|
| mx.components |
FxPanel |
spark.components |
Panel |
|
| mx.components |
ResizeMode |
spark.components |
ResizeMode |
|
| mx.components |
FxScroller |
spark.components |
Scroller |
|
| mx.components |
VGroup |
spark.components |
VGroup |
|
| mx.components |
TextView |
spark.components |
RichEditableText |
merge with TextGraphic pending perf investigations |
| mx.components |
ButtonBarButton |
spark.components |
ButtonBarButton |
|
| mx.components |
DropDownList |
spark.components |
DropDownList |
|
| mx.components |
FxButton |
spark.components |
Button |
|
| mx.components |
FxButtonBar |
spark.components |
ButtonBar |
|
| mx.components |
FxCheckBox |
spark.components |
CheckBox |
|
| mx.components |
FxHScrollBar |
spark.components |
HScrollBar |
|
| mx.components |
FxHSlider |
spark.components |
HSlider |
|
| mx.components |
IItemRenderer |
spark.components |
IItemRenderer |
|
| mx.components |
IItemRendererOwner |
spark.components |
IItemRendererOwner |
|
| mx.components |
ItemRenderer |
spark.components.supportClasses |
ItemRenderer |
|
| mx.components |
FxList |
spark.components |
List |
|
| mx.components |
FxNumericStepper |
spark.components |
NumericStepper |
|
| mx.components |
FxRadioButton |
spark.components |
RadioButton |
|
| mx.components |
FxRadioButtonGroup |
spark.components |
RadioButtonGroup |
|
| mx.components |
FxSpinner |
spark.components |
Spinner |
|
| mx.components |
FxTextArea |
spark.components |
TextArea |
|
| mx.components |
FxTextInput |
spark.components |
TextInput |
|
| mx.components |
TextSelectionVisibility |
spark.components |
TextSelectionVisibility |
|
| mx.components |
FxToggleButton |
spark.components |
ToggleButton |
|
| mx.components |
FxVScrollBar |
spark.components |
VScrollBar |
|
| mx.components |
FxVSlider |
spark.components |
VSlider |
|
| mx.components |
FxVideoDisplay |
spark.components |
VideoDisplay |
|
| mx.components |
FxContainer |
spark.components |
SkinnableContainer |
|
| mx.components |
FxDataContainer |
spark.components |
SkinnableDataContainer |
|
| mx.components |
PopUp |
spark.components |
PopUp |
|
| mx.components.baseClasses |
ButtonBase |
spark.components.supportClasses |
ButtonBase |
|
| mx.components.baseClasses |
DropDownBase |
spark.components.supportClasses |
DropDownBase |
|
| mx.components.baseClasses |
GroupBase |
spark.components.supportClasses |
GroupBase |
|
| mx.components.baseClasses |
FxContainerBase |
spark.components.supportClasses |
SkinnableContainerBase |
|
| mx.components.baseClasses |
FxListBase |
spark.components.supportClasses |
ListBase |
|
| mx.components.baseClasses |
FxRange |
spark.components.supportClasses |
Range |
|
| mx.components.baseClasses |
FxScrollBar |
spark.components.supportClasses |
ScrollBar |
|
| mx.components.baseClasses |
FxSlider |
spark.components.supportClasses |
Slider |
|
| mx.components.baseClasses |
FxTextBase |
spark.components.supportClasses |
TextBase |
|
| mx.components.baseClasses |
FxTrackBase |
spark.components.supportClasses |
TrackBase |
|
| mx.components.baseClasses |
ToggleButtonBase |
spark.components.supportClasses |
ToggleButtonBase |
|
| mx.core |
InvalidatingSprite |
spark.components.supportClasses |
InvalidatingSprite |
|
| mx.components.baseClasses |
FxComponent |
spark.components.supportClasses |
SkinnableComponent |
|
| mx.components |
FxScrollerLayout |
spark.components.supportClasses |
ScrollerLayout |
|
| mx.components |
Skin |
spark.components.supportClasses |
Skin |
|
| mx.core |
IViewport |
spark.core |
IViewport |
|
| mx.core |
ScrollUnit |
spark.core |
ScrollUnit |
|
| mx.core |
IDeferredContentOwner |
spark.core |
IDeferredContentOwner |
|
| mx.core |
ISelectableRenderer |
spark.core |
ISelectableRenderer |
was going to rename to ISelectable but has list-renderer specific feature |
| mx.core |
SpriteVisualElement |
spark.core |
SpriteVisualElement |
|
| mx.core |
Version |
spark.core |
Version |
|
| mx.effects |
AddAction |
spark.effects |
AddAction |
|
| mx.effects |
FxAnimate |
spark.effects |
Animate |
|
| mx.effects |
FxAnimate3D |
spark.effects |
Animate3D |
|
| mx.effects |
FxAnimateColor |
spark.effects |
AnimateColor |
|
| mx.effects |
FxAnimateFilter |
spark.effects |
AnimateFilter |
|
| mx.effects |
FxAnimateShaderTransition |
spark.effects |
AnimateShaderTransition |
|
| mx.effects |
CallAction |
spark.effects |
CallAction |
|
| mx.effects |
FxCrossFade |
spark.effects |
CrossFade |
|
| mx.effects |
FxFade |
spark.effects |
Fade |
|
| mx.effects |
FxMove |
spark.effects |
Move |
|
| mx.effects |
RemoveAction |
spark.effects |
RemoveAction |
|
| mx.effects |
FxResize |
spark.effects |
Resize |
|
| mx.effects |
FxRotate |
spark.effects |
Rotate |
|
| mx.effects |
FxRotate3D |
spark.effects |
Rotate3D |
|
| mx.effects |
SetAction |
spark.effects |
SetAction |
|
| mx.effects |
FxWipe |
spark.effects |
Wipe |
|
| mx.effects |
WipeDirection |
spark.effects |
WipeDirection |
|
| mx.effects |
Animation |
spark.effects.animation |
Animation |
|
| mx.effects |
AnimationProperty |
spark.effects |
AnimationProperty |
|
| mx.effects |
Timeline |
spark.effects.animation |
Timeline |
|
| mx.effects.interpolation |
EaseInOut |
spark.effects.easing |
EaseInOut |
|
| mx.effects.interpolation |
IEaser |
spark.effects.easing |
IEaser |
|
| mx.effects.interpolation |
Linear |
spark.effects.easing |
Linear |
|
| mx.effects.interpolation |
Power |
spark.effects.easing |
Power |
|
| mx.effects.interpolation |
Sine |
spark.effects.easing |
Sine |
|
| mx.effects.effectClasses |
AddActionInstance |
spark.effects.supportClasses |
AddActionInstance |
|
| mx.effects.effectClasses |
FxAnimate3DInstance |
spark.effects.supportClasses |
Animate3Dinstance |
|
| mx.effects.effectClasses |
FxAnimateColorInstance |
spark.effects.supportClasses |
AnimateColorInstance |
|
| mx.effects.effectClasses |
FxAnimateFilterInstance |
spark.effects.supportClasses |
AnimateFilterInstance |
|
| mx.effects.effectClasses |
FxAnimateInstance |
spark.effects.supportClasses |
AnimateInstance |
|
| mx.effects.effectClasses |
FxAnimateShaderTransitionInstance |
spark.effects.supportClasses |
AnimateShaderTransitionInstance |
|
| mx.effects.effectClasses |
CallActionInstance |
spark.effects.supportClasses |
CallActionInstance |
|
| mx.effects.effectClasses |
FxFadeInstance |
spark.effects.supportClasses |
FadeInstance |
|
| mx.effects.effectClasses |
FxMoveInstance |
spark.effects.supportClasses |
MoveInstance |
|
| mx.effects.effectClasses |
RemoveActionInstance |
spark.effects.supportClasses |
RemoveActionInstance |
|
| mx.effects.effectClasses |
FxResizeInstance |
spark.effects.supportClasses |
ResizeInstance |
|
| mx.effects.effectClasses |
FxRotate3DInstance |
spark.effects.supportClasses |
Rotate3DInstance |
|
| mx.effects.effectClasses |
FxRotateInstance |
spark.effects.supportClasses |
RotateInstance |
|
| mx.effects.effectClasses |
SetActionInstance |
spark.effects.supportClasses |
SetActionInstance |
|
| mx.effects.effectClasses |
FxWipeInstance |
spark.effects.supportClasses |
WipeInstance |
|
| mx.effects.interpolation |
ArrayInterpolator |
spark.effects.interpolation |
ArrayInterpolator |
|
| mx.effects.interpolation |
HSBInterpolator |
spark.effects.interpolation |
HSBInterpolator |
|
| mx.effects.interpolation |
IInterpolator |
spark.effects.interpolation |
IInterpolator |
|
| mx.effects.interpolation |
NumberArrayInterpolator |
spark.effects.interpolation |
NumberArrayInterpolator |
|
| mx.effects.interpolation |
NumberInterpolator |
spark.effects.interpolation |
NumberInterpolator |
|
| mx.effects.interpolation |
RGBInterpolator |
spark.effects.interpolation |
RGBInterpolator |
|
| mx.events |
AnimationEvent |
spark.events |
AnimationEvent |
|
| mx.events |
ElementExistenceEvent |
spark.events |
ElementExistenceEvent |
|
| mx.events |
RendererExistenceEvent |
spark.events |
RendererExistenceEvent |
|
| mx.events |
TextOperationEvent |
spark.events |
TextOperationEvent |
|
| mx.filters |
BevelFilter |
spark.filters |
BevelFilter |
|
| mx.filters |
BlurFilter |
spark.filters |
BlurFilter |
|
| mx.filters |
ColorMatrixFilter |
spark.filters |
ColorMatrixFilter |
|
| mx.filters |
ConvolutionFilter |
spark.filters |
ConvolutionFilter |
|
| mx.filters |
DisplacementMapFilter |
spark.filters |
DisplacementMapFilter |
|
| mx.filters |
DropShadowFilter |
spark.filters |
DropShadowFilter |
|
| mx.filters |
GlowFilter |
spark.filters |
GlowFilter |
|
| mx.filters |
GradientBevelFilter |
spark.filters |
GradientBevelFilter |
|
| mx.filters |
GradientFilter |
spark.filters |
GradientFilter |
|
| mx.filters |
GradientGlowFilter |
spark.filters |
GradientGlowFilter |
|
| mx.filters |
ShaderFilter |
spark.filters |
ShaderFilter |
|
| mx.graphics |
IGraphicElement |
spark.core |
IGraphicElement |
|
| mx.graphics |
ISharedDisplayObject |
spark.core |
ISharedDisplayObject |
|
| mx.graphics |
MaskType |
spark.core |
MaskType |
|
| mx.graphics |
TextBox |
spark.primitives |
SimpleText |
|
| mx.graphics |
TextGraphic |
spark.primitives |
RichText |
merge with TextView pending perf investigations |
| mx.graphics |
Ellipse |
spark.primitives |
Ellipse |
|
| mx.graphics |
Graphic |
spark.primitives |
Graphic |
|
| mx.graphics |
BitmapGraphic |
spark.primitives |
BitmapImage |
With TextGraphic this is the last remaining Graphic reference. |
| mx.graphics |
BitmapResizeMode |
spark.primitives |
BitmapImageResizeMode |
|
| mx.graphics |
Line |
spark.primitives |
Line |
|
| mx.graphics |
Path |
spark.primitives |
Path |
|
| mx.graphics |
Rect |
spark.primitives |
Rect |
|
| mx.graphics |
VideoElement |
spark.primitives |
VideoElement |
|
| mx.graphics.baseClasses |
GraphicElement |
spark.primitives.supportClasses |
GraphicElement |
not in core since IGE is core not the impl |
| mx.graphics |
FilledElement |
spark.primitives.supportClasses |
FilledElement |
|
| mx.graphics |
StrokedElement |
spark.primitives.supportClasses |
StrokedElement |
|
| mx.graphics |
CloseSegment |
spark.primitives.pathSegments |
CloseSegment |
to be removed |
| mx.graphics |
CubicBezierSegment |
spark.primitives.pathSegments |
CubicBezierSegment |
to be removed |
| mx.graphics |
LineSegment |
spark.primitives.pathSegments |
LineSegment |
to be removed |
| mx.graphics |
MoveSegment |
spark.primitives.pathSegments |
MoveSegment |
to be removed |
| mx.graphics |
PathSegment |
spark.primitives.pathSegments |
PathSegment |
to be removed |
| mx.graphics |
QuadraticBezierSegment |
spark.primitives.pathSegments |
QuadraticBezierSegment |
to be removed |
| mx.graphics.baseClasses |
TextGraphicElement |
spark.primitives.supportClasses |
TextGraphicElement |
|
| mx.layout |
BasicLayout |
spark.layout |
BasicLayout |
|
| mx.layout |
HorizontalAlign |
spark.layout |
HorizontalAlign |
|
| mx.layout |
HorizontalLayout |
spark.layout |
HorizontalLayout |
|
| mx.layout |
TileLayout |
spark.layout |
TileLayout |
|
| mx.layout |
TileJustifyColumns |
spark.layout |
TileJustifyColumns |
|
| mx.layout |
TileJustifyRows |
spark.layout |
TileJustifyRows |
|
| mx.layout |
TileOrientation |
spark.layout |
TileOrientation |
|
| mx.layout |
VerticalAlign |
spark.layout |
VerticalAlign |
|
| mx.layout |
VerticalLayout |
spark.layout |
VerticalLayout |
|
| mx.layout |
Block |
spark.layout.supportClasses |
Block |
|
| mx.layout |
LayoutBase |
spark.layout.supportClasses |
LayoutBase |
|
| mx.layout |
LayoutElementFactory |
spark.layout.supportClasses |
LayoutElementFactory |
|
| mx.layout |
LayoutElementHelper |
spark.layout.supportClasses |
LayoutElementHelper |
|
| mx.layout |
LinearLayoutVector |
spark.layout.supportClasses |
LinearLayoutVector |
|
| mx.skins.spark |
SparkSkin |
spark.skins |
SparkSkin |
|
| mx.skins.spark |
DropDownListButtonSkin |
spark.skins.default |
DropDownListButtonSkin |
|
| mx.skins.spark |
DropDownListSkin |
spark.skins.default |
DropDownListSkin |
|
| mx.skins.spark |
FxApplicationSkin |
spark.skins.default |
ApplicationSkin |
|
| mx.skins.spark |
FxButtonBarFirstButtonSkin |
spark.skins.default |
ButtonBarFirstButtonSkin |
|
| mx.skins.spark |
FxButtonBarLastButtonSkin |
spark.skins.default |
ButtonBarLastButtonSkin |
|
| mx.skins.spark |
FxButtonBarMiddleButtonSkin |
spark.skins.default |
ButtonBarMiddleButtonSkin |
|
| mx.skins.spark |
FxButtonBarSkin |
spark.skins.default |
ButtonBarSkin |
|
| mx.skins.spark |
FxButtonSkin |
spark.skins.default |
ButtonSkin |
|
| mx.skins.spark |
FxCheckBoxSkin |
spark.skins.default |
CheckBoxSkin |
|
| mx.skins.spark |
FxContainerSkin |
spark.skins.default |
SkinnableContainerSkin |
|
| mx.skins.spark |
FxDataContainerSkin |
spark.skins.default |
SkinnableDataContainerSkin |
|
| mx.skins.spark |
FxDefaultButtonSkin |
spark.skins.default |
DefaultButtonSkin |
|
| mx.skins.spark |
FxDefaultComplexItemRenderer |
spark.skins.default |
DefaultComplexItemRenderer |
|
| mx.skins.spark |
FxDefaultItemRenderer |
spark.skins.default |
DefaultItemRenderer |
|
| mx.skins.spark |
FxFocusSkin |
spark.skins.default |
FocusSkin |
|
| mx.skins.spark |
FxHScrollBarSkin |
spark.skins.default |
HScrollBarSkin |
|
| mx.skins.spark |
FxHScrollBarThumbSkin |
spark.skins.default |
HScrollBarThumbSkin |
|
| mx.skins.spark |
FxHScrollBarTrackSkin |
spark.skins.default |
HScrollBarTrackSkin |
|
| mx.skins.spark |
FxHSliderSkin |
spark.skins.default |
HSliderSkin |
|
| mx.skins.spark |
FxHSliderThumbSkin |
spark.skins.default |
HSliderThumbSkin |
|
| mx.skins.spark |
FxHSliderTrackSkin |
spark.skins.default |
HSliderTrackSkin |
|
| mx.skins.spark |
FxListSkin |
spark.skins.default |
ListSkin |
|
| mx.skins.spark |
FxNumericStepperSkin |
spark.skins.default |
NumericStepperSkin |
|
| mx.skins.spark |
FxNumericStepperTextInputSkin |
spark.skins.default |
NumericStepperTextInputSkin |
|
| mx.skins.spark |
FxPanelSkin |
spark.skins.default |
PanelSkin |
|
| mx.skins.spark |
FxRadioButtonSkin |
spark.skins.default |
RadioButtonSkin |
|
| mx.skins.spark |
FxScrollBarDownButtonSkin |
spark.skins.default |
ScrollBarDownButtonSkin |
|
| mx.skins.spark |
FxScrollBarLeftButtonSkin |
spark.skins.default |
ScrollBarLeftButtonSkin |
|
| mx.skins.spark |
FxScrollBarRightButtonSkin |
spark.skins.default |
ScrollBarRightButtonSkin |
|
| mx.skins.spark |
FxScrollBarUpButtonSkin |
spark.skins.default |
ScrollBarUpButtonSkin |
|
| mx.skins.spark |
FxScrollerSkin |
spark.skins.default |
ScrollerSkin |
|
| mx.skins.spark |
FxSpinnerDecrButtonSkin |
spark.skins.default |
SpinnerDecrButtonSkin |
|
| mx.skins.spark |
FxSpinnerIncrButtonSkin |
spark.skins.default |
SpinnerIncrButtonSkin |
|
| mx.skins.spark |
FxSpinnerSkin |
spark.skins.default |
SpinnerSkin |
|
| mx.skins.spark |
FxTextAreaSkin |
spark.skins.default |
TextAreaSkin |
|
| mx.skins.spark |
FxTextInputSkin |
spark.skins.default |
TextInputSkin |
|
| mx.skins.spark |
FxToggleButtonSkin |
spark.skins.default |
ToggleButtonSkin |
|
| mx.skins.spark |
FxVideoDisplaySkin |
spark.skins.default |
VideoDisplaySkin |
|
| mx.skins.spark |
FxVScrollBarSkin |
spark.skins.default |
VScrollBarSkin |
|
| mx.skins.spark |
FxVScrollBarThumbSkin |
spark.skins.default |
VScrollBarThumbSkin |
|
| mx.skins.spark |
FxVScrollBarTrackSkin |
spark.skins.default |
VScrollBarTrackSkin |
|
| mx.skins.spark |
FxVSliderSkin |
spark.skins.default |
VSliderSkin |
|
| mx.skins.spark |
FxVSliderThumbSkin |
spark.skins.default |
VSliderThumbSkin |
|
| mx.skins.spark |
FxVSliderTrackSkin |
spark.skins.default |
VSliderTrackSkin |
|
| mx.skins.spark |
FxVideoDisplayMuteButtonSkin |
spark.skins.default |
VideoDisplayMuteButtonSkin |
|
| mx.skins.spark |
FxVideoDisplayPlayPauseButtonSkin |
spark.skins.default |
VideoDisplayPlayPauseButtonSkin |
|
| mx.states |
AddItems |
mx.states |
AddItems |
Move to framework |
| mx.styles.metadata |
AdvancedTextLayoutFormatStyles |
spark.styles.metadata |
AdvancedTextLayoutFormatStyles |
|
| mx.styles.metadata |
BasicTextLayoutFormatStyles |
spark.styles.metadata |
BasicTextLayoutFormatStyles |
|
| mx.styles.metadata |
NonInheritingTextLayoutFormatStyles |
spark.styles.metadata |
NonInheritingTextLayoutFormatStyles |
|
| mx.styles.metadata |
SelectionFormatTextStyles |
spark.styles.metadata |
SelectionFormatTextStyles |
|
| mx.styles.metadata |
SparkColorStyles |
spark.styles.metadata |
SparkColorStyles |
|
| mx.utils |
LabelUtil |
spark.utils |
LabelUtil |
|
| mx.utils |
MouseShieldUtil |
spark.utils |
MouseShieldUtil |
|
| mx.utils |
TextUtil |
spark.utils |
TextUtil |
|
| mx.utils |
HSBColor |
spark.utils |
HSBColor |
|
| mx.components |
MXMLComponent |
KILL |
it's time to get rid of this. |
remove |
| mx.graphics |
Parser |
KILL |
it's time to get rid of this. |
remove |
| wireframe package |
class name |
Destination package |
destination name |
| wireframe. |
FxButtonSkin |
spark.skins.wireframe |
ButtonSkin |
| wireframe. |
FxCheckBoxSkin |
spark.skins.wireframe |
CheckBoxSkin |
| wireframe. |
FxDefaultComplexItemRenderer |
spark.skins.wireframe |
DefaultComplexItemRenderer |
| wireframe. |
FxDefaultItemRenderer |
spark.skins.wireframe |
DefaultItemRenderer |
| wireframe. |
FxHScrollBarSkin |
spark.skins.wireframe |
HScrollBarSkin |
| wireframe. |
FxHScrollBarThumbSkin |
spark.skins.wireframe |
HScrollBarThumbSkin |
| wireframe. |
FxHScrollBarTrackSkin |
spark.skins.wireframe |
HScrollBarTrackSkin |
| wireframe. |
FxHSliderSkin |
spark.skins.wireframe |
HSliderSkin |
| wireframe. |
FxHSliderThumbSkin |
spark.skins.wireframe |
HSliderThumbSkin |
| wireframe. |
FxHSliderTrackSkin |
spark.skins.wireframe |
HSliderTrackSkin |
| wireframe. |
FxListSkin |
spark.skins.wireframe |
ListSkin |
| wireframe. |
FxNumericStepperSkin |
spark.skins.wireframe |
NumericStepperSkin |
| wireframe. |
FxNumericStepperTextInputSkin |
spark.skins.wireframe |
NumericStepperTextInputSkin |
| wireframe. |
FxRadioButtonSkin |
spark.skins.wireframe |
RadioButtonSkin |
| wireframe. |
FxScrollBarDownButtonSkin |
spark.skins.wireframe |
ScrollBarDownButtonSkin |
| wireframe. |
FxScrollBarLeftButtonSkin |
spark.skins.wireframe |
ScrollBarLeftButtonSkin |
| wireframe. |
FxScrollBarRightButtonSkin |
spark.skins.wireframe |
ScrollBarRightButtonSkin |
| wireframe. |
FxScrollBarUpButtonSkin |
spark.skins.wireframe |
ScrollBarUpButtonSkin |
| wireframe. |
FxSpinnerDecrButtonSkin |
spark.skins.wireframe |
SpinnerDecrButtonSkin |
| wireframe. |
FxSpinnerIncrButtonSkin |
spark.skins.wireframe |
SpinnerIncrButtonSkin |
| wireframe. |
FxSpinnerSkin |
spark.skins.wireframe |
SpinnerSkin |
| wireframe. |
FxTextAreaSkin |
spark.skins.wireframe |
TextAreaSkin |
| wireframe. |
FxTextInputSkin |
spark.skins.wireframe |
TextInputSkin |
| wireframe. |
FxToggleButtonSkin |
spark.skins.wireframe |
ToggleButtonSkin |
| wireframe. |
FxVScrollBarSkin |
spark.skins.wireframe |
VScrollBarSkin |
| wireframe. |
FxVScrollBarThumbSkin |
spark.skins.wireframe |
VScrollBarThumbSkin |
| wireframe. |
FxVScrollBarTrackSkin |
spark.skins.wireframe |
VScrollBarTrackSkin |
| wireframe. |
FxVSliderSkin |
spark.skins.wireframe |
VSliderSkin |
| wireframe. |
FxVSliderTrackSkin |
spark.skins.wireframe |
VSliderTrackSkin |
| wireframe. |
FxVSliderThumbSkin |
spark.skins.wireframe |
VSliderThumbSkin |
Appendix A: detailed namespace contents
This section lists exactly what classes are included in each group used in the namespace descriptions above.
Built in Types
| Class |
Package |
| Array |
|
| Boolean |
|
| Class |
|
| Date |
|
| Function |
|
| int |
|
| Number |
|
| Object |
|
| String |
|
| RegExp |
|
| uint |
|
| XML |
|
| MLList |
|
RPC
| Class |
Package |
| AMFChannel |
mx.messaging.channels |
| CallResponder |
mx.rpc |
| ChannelSet |
mx.messaging |
| Consumer |
mx.messaging |
| HTTPChannel |
mx.messaging.channels |
| HTTPService |
mx.rpc.http.mxml |
| Producer |
mx.messaging |
| RemoteObject |
mx.rpc.remoting.mxml |
| Operation |
mx.rpc.remoting.mxml |
| RTMPChannel |
mx.messaging.channels |
| SecureAMFChannel |
mx.messaging.channels |
| SecureStreamingAMFChannel |
mx.messaging.channels |
| SecureHTTPChannel |
mx.messaging.channels |
| SecureStreamingHTTPChannel |
mx.messaging.channels |
| SecureRTMPChannel |
mx.messaging.channels |
| StreamingAMFChannel |
mx.messaging.channels |
| StreamingHTTPChannel |
mx.messaging.channels |
| WebService |
mx.rpc.soap.mxml |
| Operation |
mx.rpc.soap.mxml |
Data Services
| Class |
Package |
| DataService |
mx.data.mxml |
Spark
| Class |
Package |
| AddAction |
spark.effects |
| Animation |
spark.effects |
| AnimationProperty |
spark.effects.animation |
| BasicLayout |
spark.layout |
| BevelFilter |
spark.filters |
| BitmapImage |
spark.primitives |
| BlurFilter |
spark.filters |
| CallAction |
spark.effects |
| ColorMatrixFilter |
spark.filters |
| ConvolutionFilter |
spark.filters |
| DataGroup |
spark.components |
| DefaultComplexItemRenderer |
spark.skins.default |
| DisplacementMapFilter |
spark.filters |
| DropDownList |
spark.components |
| DropShadowFilter |
spark.filters |
| Ellipse |
spark.primitives |
| Animate |
spark.effects |
| Animate3D |
spark.effects |
| AnimateColor |
spark.effects |
| AnimateFilter |
spark.effects |
| AnimateShaderTransition |
spark.effects |
| Application |
spark.components |
| Button |
spark.components |
| CheckBox |
spark.components |
| SkinnableComponent |
spark.components.supportClasses |
| SkinnableContainer |
spark.components.supportClasses |
| CrossFade |
spark.effects |
| SkinnableDataContainer |
spark.components.supportClasses |
| DefaultComplexItemRenderer |
spark.skins.default |
| DefaultItemRenderer |
spark.skins.default |
| Fade |
spark.effects |
| HScrollBar |
spark.components |
| HSlider |
spark.components |
| List |
spark.components |
| ListBase |
spark.components.supportClasses |
| Move |
spark.effects |
| NumericStepper |
spark.components |
| RadioButton |
spark.components |
| RadioButtonGroup |
spark.components |
| Range |
spark.components.supportClasses |
| Resize |
spark.effects |
| Rotate |
spark.effects |
| Rotate3D |
spark.effects |
| ScrollBar |
spark.components.supportClasses |
| Scroller |
spark.components |
| Slider |
spark.components.supportClasses |
| Spinner |
spark.components |
| TextArea |
spark.components |
| TextInput |
spark.components |
| ToggleButton |
spark.components |
| TrackBase |
spark.components.supportClasses |
| VScrollBar |
spark.components |
| VSlider |
spark.components |
| Wipe |
spark.effects |
| GlowFilter |
spark.filters |
| GradientBevelFilter |
spark.filters |
| GradientGlowFilter |
spark.filters |
| Graphic |
spark.primitives |
| Group |
spark.components |
| HGroup |
spark.components |
| HorizontalLayout |
spark.layout |
| HSBInterpolator |
spark.effects.interpolation |
| ItemRenderer |
spark.components.supportClasses |
| Line |
spark.primitives |
| Linear |
spark.effects.easing |
| Path |
spark.primitives |
| PopUp |
spark.components |
| Power |
spark.effects.easing |
| QuadraticBezierSegment |
spark.primitives |
| Rect |
spark.primitives |
| RemoveAction |
spark.effects |
| RGBInterpolator |
spark.effects.interpolation |
| SetAction |
spark.effects |
| ShaderFilter |
spark.filters |
| Sine |
spark.effects.easing |
| Skin |
spark.components.supportClasses |
| SparkSkin |
spark.skins |
| SimpleText |
spark.primitives |
| RichText |
spark.primitives |
| RichEditableText |
spark.primitives |
| TileLayout |
spark.layout |
| VerticalLayout |
spark.layout |
| VGroup |
spark.components |
| Wait |
spark.effects |
TLF Text Framework
| Class |
Package |
| BreakElement |
flashx.textLayout.elements |
| CharacterFormat |
flashx.textLayout.formats |
| ContainerFormat |
flashx.textLayout.formats |
| DivElement |
flashx.textLayout.elements |
| InlineGraphicElement |
flashx.textLayout.elements |
| LinkElement |
flashx.textLayout.elements |
| ParagraphElement |
flashx.textLayout.elements |
| ParagraphFormat |
flashx.textLayout.formats |
| SpanElement |
flashx.textLayout.elements |
| TabElement |
flashx.textLayout.elements |
| TCYElement |
flashx.textLayout.elements |
| TextFlow |
flashx.textLayout.elements |
MX AIR Classes
| Class |
Package |
| FileSystemComboBox |
mx.controls |
| FileSystemDataGrid |
mx.controls |
| FileSystemHistoryButton |
mx.controls |
| FileSystemList |
mx.controls |
| FileSystemTree |
mx.controls |
| HTML |
mx.controls |
| Window |
mx.core |
| WindowedApplication |
mx.core |
Charts
| Class |
Package |
| AreaChart |
mx.charts |
| AreaRenderer |
mx.charts.renderers |
| AreaSeries |
mx.charts.series |
| AreaSet |
mx.charts.series |
| AxisRenderer |
mx.charts |
| BarChart |
mx.charts |
| BarSeries |
mx.charts.series |
| BarSet |
mx.charts.series |
| BoxItemRenderer |
mx.charts.renderers |
| BubbleChart |
mx.charts |
| BubbleSeries |
mx.charts.series |
| CandlestickChart |
mx.charts |
| CandlestickItemRenderer |
mx.charts.renderers |
| CandlestickSeries |
mx.charts.series |
| CartesianChart |
mx.charts.chartClasses |
| CategoryAxis |
mx.charts |
| ChartBase |
mx.charts.chartClasses |
| CircleItemRenderer |
mx.charts.renderers |
| ColumnChart |
mx.charts |
| ColumnSeries |
mx.charts.series |
| ColumnSet |
mx.charts.series |
| CrossItemRenderer |
mx.charts.renderers |
| DateTimeAxis |
mx.charts |
| DiamondItemRenderer |
mx.charts.renderers |
| GridLines |
mx.charts |
| HLOCChart |
mx.charts |
| HLOCItemRenderer |
mx.charts.renderers |
| HLOCSeries |
mx.charts.series |
| Legend |
mx.charts |
| LegendItem |
mx.charts |
| LinearAxis |
mx.charts |
| LineChart |
mx.charts |
| LineRenderer |
mx.charts.renderers |
| LineSeries |
mx.charts.series |
| LogAxis |
mx.charts |
| PieChart |
mx.charts |
| PieSeries |
mx.charts.series |
| PlotChart |
mx.charts |
| PlotSeries |
mx.charts.series |
| PolarChart |
mx.charts.chartClasses |
| SeriesEffect |
mx.charts.effects |
| SeriesInterpolate |
mx.charts.effects |
| SeriesSlide |
mx.charts.effects |
| SeriesZoom |
mx.charts.effects |
| ShadowBoxItemRenderer |
mx.charts.renderers |
| ShadowLineRenderer |
mx.charts.renderers |
| TriangleItemRenderer |
mx.charts.renderers |
| WedgeItemRenderer |
mx.charts.renderers |
MX
| Class |
Package |
| Accordion |
mx.containers |
| AddChild |
mx.states |
| AddChildAction |
mx.effects |
| AddItemAction |
mx.effects |
| AddItems |
mx.states |
| AnimateProperty |
mx.effects |
| Application |
mx.core |
| ApplicationControlBar |
mx.containers |
| ArrayCollection |
mx.collections |
| BevelFilter |
flash.filters |
| BitmapFill |
mx.graphics |
| Blur |
mx.effects |
| BlurFilter |
flash.filters |
| Box |
mx.containers |
| Button |
mx.controls |
| ButtonBar |
mx.controls |
| Canvas |
mx.containers |
| CheckBox |
mx.controls |
| ColorMatrixFilter |
flash.filters |
| ColorPicker |
mx.controls |
| ComboBox |
mx.controls |
| ConstraintColumn |
mx.containers.utilityClasses |
| ConstraintRow |
mx.containers.utilityClasses |
| Container |
mx.core |
| ControlBar |
mx.containers |
| ConvolutionFilter |
flash.filters |
| CreditCardValidator |
mx.validators |
| CurrencyFormatter |
mx.formatters |
| CurrencyValidator |
mx.validators |
| DataGrid |
mx.controls |
| DataGridColumn |
mx.controls.dataGridClasses |
| DataGridItemRenderer |
mx.controls.dataGridClasses |
| DateChooser |
mx.controls |
| DateField |
mx.controls |
| DateFormatter |
mx.formatters |
| DateValidator |
mx.validators |
| DefaultListEffect |
mx.effects |
| DefaultTileListEffect |
mx.effects |
| DisplacementMapFilter |
flash.filters |
| Dissolve |
mx.effects |
| DividedBox |
mx.containers |
| DropShadowFilter |
flash.filters |
| EffectTargetFilter |
mx.effects |
| EmailValidator |
mx.validators |
| Fade |
mx.effects |
| Form |
mx.containers |
| FormHeading |
mx.containers |
| FormItem |
mx.containers |
| Glow |
mx.effects |
| GlowFilter |
flash.filters |
| GradientBevelFilter |
flash.filters |
| GradientEntry |
mx.graphics |
| GradientGlowFilter |
flash.filters |
| Grid |
mx.containers |
| GridItem |
mx.containers |
| GridRow |
mx.containers |
| HBox |
mx.containers |
| HDividedBox |
mx.containers |
| HorizontalList |
mx.controls |
| HRule |
mx.controls |
| HScrollBar |
mx.controls |
| HSlider |
mx.controls |
| Image |
mx.controls |
| Iris |
mx.effects |
| Label |
mx.controls |
| LinearGradient |
mx.graphics |
| LinearGradientStroke |
mx.graphics |
| LinkBar |
mx.controls |
| LinkButton |
mx.controls |
| List |
mx.controls |
| ListCollectionView |
mx.collections |
| MaskEffect |
mx.effects |
| Matrix |
flash.geom |
| MenuBar |
mx.controls |
| MiniDebugTarget |
mx.logging.targets |
| Module |
mx.modules |
| ModuleLoader |
mx.modules |
| Move |
mx.effects |
| NumberFormatter |
mx.formatters |
| NumberValidator |
mx.validators |
| NumericStepper |
mx.controls |
| Panel |
mx.containers |
| Parallel |
mx.effects |
| Pause |
mx.effects |
| PhoneFormatter |
mx.formatters |
| PhoneNumberValidator |
mx.validators |
| Point |
flash.geom |
| PopUpButton |
mx.controls |
| PopUpMenuButton |
mx.controls |
| PrintDataGrid |
mx.printing |
| ProgressBar |
mx.controls |
| RadialGradient |
mx.graphics |
| RadialGradientStroke |
mx.graphics |
| RadioButton |
mx.controls |
| RadioButtonGroup |
mx.controls |
| RegExpValidator |
mx.validators |
| RemoveChild |
mx.states |
| RemoveChildAction |
mx.effects |
| RemoveItemAction |
mx.effects |
| Repeater |
mx.core |
| Resize |
mx.effects |
| RichTextEditor |
mx.controls |
| Rotate |
mx.effects |
| Sequence |
mx.effects |
| SetEventHandler |
mx.states |
| SetProperty |
mx.states |
| SetPropertyAction |
mx.effects |
| SetStyle |
mx.states |
| SetStyleAction |
mx.effects |
| SocialSecurityValidator |
mx.validators |
| SolidColor |
mx.graphics |
| SolidColorStroke |
mx.graphics |
| Sort |
mx.collections |
| SortField |
mx.collections |
| SoundEffect |
mx.effects |
| Spacer |
mx.controls |
| Sprite |
flash.display |
| State |
mx.states |
| StringValidator |
mx.validators |
| Stroke |
mx.graphics |
| SWFLoader |
mx.controls |
| TabBar |
mx.controls |
| TabNavigator |
mx.containers |
| Text |
mx.controls |
| TextArea |
mx.controls |
| TextInput |
mx.controls |
| Tile |
mx.containers |
| TileList |
mx.controls |
| TitleWindow |
mx.containers |
| ToggleButtonBar |
mx.controls |
| ToolBar |
mx.controls.richTextEditorClasses |
| TraceTarget |
mx.logging.targets |
| Transform |
mx.geom |
| Transition |
mx.states |
| Tree |
mx.controls |
| UIComponent |
mx.core |
| VBox |
mx.containers |
| VDividedBox |
mx.containers |
| VideoDisplay |
mx.controls |
| ViewStack |
mx.containers |
| VRule |
mx.controls |
| VScrollBar |
mx.controls |
| VSlider |
mx.controls |
| Validator |
mx.validators |
| WipeDown |
mx.effects |
| WipeLeft |
mx.effects |
| WipeRight |
mx.effects |
| WipeUp |
mx.effects |
| XMLListCollection |
mx.collections |
| ZipCodeFormatter |
mx.formatters |
| ZipCodeValidator |
mx.validators |
| Zoom |
mx.effects |
| You must be logged in to comment. |
Comments (24)
Mar 02, 2009
Haykel Ben Jemia says:
I'm missing the TLF in the Halo namespace and the AIR classes in the Spark names...I'm missing the TLF in the Halo namespace and the AIR classes in the Spark namespace.
Mar 16, 2009
Ely Greenfield says:
Some AIR specific support will be added to the spark components, and from there ...Some AIR specific support will be added to the spark components, and from there to the Spark namespace. Any legacy classes that exist in halo will stay in the halo namespace.
Mar 03, 2009
Tom Chiverton says:
This all seems sensible. I certainly see Spark as as much of a top-level framewo...This all seems sensible. I certainly see Spark as as much of a top-level framework/component as mx is.
I don't see a problem with extending mx.graphics with new (Flex 4) features.
Mar 04, 2009
Shashank Tiwari says:
I like the idea of spark being a top-level package (Option 3 as listed above). W...I like the idea of spark being a top-level package (Option 3 as listed above).
Where would the new client data management classes go – mx.data ?
Also, time to update the other documents to incorporate these changes, I guess!
Mar 05, 2009
Christophe JOLIF says:
This is not a show-stopper, but ideally I'd like to be able to compile an apps w...This is not a show-stopper, but ideally I'd like to be able to compile an apps written with Flex 3, into Flex 4 without modification. As MXML 2006 does not contain charting anymore this is AFAICS not possible?
Mar 06, 2009
Matt Chotin says:
This should work. Everything that existed in MXML 2006 in Flex 3 will exist in ...This should work. Everything that existed in MXML 2006 in Flex 3 will exist in Flex 4.
Mar 06, 2009
Ely Greenfield says:
That was an oversight Christophe, thanks for catching it. It's been corrected in...That was an oversight Christophe, thanks for catching it. It's been corrected in the proposal. As Matt said, anything else that has been accidentally removed from 2006 is an oversight that will be corrected.
Mar 11, 2009
Jay Araujo says:
Hi Ely & Matt, I'm really curious why the word "flex." is never mentioned a...Hi Ely & Matt,
I'm really curious why the word "flex." is never mentioned as an option for the main top level package of the.. ahem.. >> Flex << framework? Maybe it's some reserved word or something?
If I'm using code that belongs to the >> Flex << Framework, what else could be intuitive other than start typing " import flex.yada..."? Obviously, stuff that is specifically related to spark (and/or could get deprecated) should be all grouped under (flex.)spark, no question about that.
The legacy 'mx.' and 'fl.' top level package names are fast to type, but nothing hinting. Drives the newbies crazy. So even though option 3 above is clearly the best, adding yet another magic word to the bunch won't help the matter.
On the other side, if it's feasible to create a top level 'flex' package now the old ones would still hang around for a while, but by the time Flex5 rolls out(2020?) and Halo support is dropped(R.I.P), it would finally be possible for Flex to leave the years of top level 'magic words' behind.
Just my 2 cents.
Mar 12, 2009
Matt Chotin says:
We definitely thought about using flex as the main package name. The main reaso...We definitely thought about using flex as the main package name. The main reason right now is that we haven't proven we have our packaging story perfect, so we don't want to introduce this change and be wrong again, and then we'll have blown our opportunity to use that package.
Mar 11, 2009
Gordon Smith says:
How can the mx prefix map both to http://www.adobe.com/2006/mxml (MXML 2006) and...How can the mx prefix map both to http://www.adobe.com/2006/mxml (MXML 2006) and to library://ns.adobe.com/flex/halo (Halo)?
Mar 12, 2009
Matt Chotin says:
The prefix is always local to the nodes that have the namespace declared. So si...The prefix is always local to the nodes that have the namespace declared. So since the mxml 2006 namespace and the halo namespace will never appear in the same XML file, we can easily have them share the mx prefix. I think sharing the mx prefix makes it easier to copy code from an older file into a newer one.
Mar 11, 2009
Gordon Smith says:
To write a Spark app, I have to use two namespaces: MXML 2009 for the language t...To write a Spark app, I have to use two namespaces: MXML 2009 for the language tags and Spark for the component tags. This is a step backward in usability compared to a Halo app, where the MXML 2006 namespace includes the Halo components. Why can't the MXML 2009 namespace contain the Spark components, and have an empty default prefix, so that we can just write Spark apps like this?
<Application xmlns="http://ns.adobe.com/mxml/2009">
<Script>
</Script>
<SimpleText/>
</Application>
Wouldn't that help usability for newbies?
Mar 12, 2009
Matt Chotin says:
For one thing, the feedback when we began discussing the prefix and we kept brin...For one thing, the feedback when we began discussing the prefix and we kept bringing up the usability of multiple namespaces was that we were absolutely wrong that we needed to be concerned about this. Most Flex applications have other packages. Your super-simple case may be slightly more complicated, but any app of medium complexity was already using multiple. So dropping 5 namespaces down to 4 is no savings at all. We would only potentially be making it harder for new developers to understand the nuance of what means what.
As for the default prefix, I didn't see overwhelming support for it in the forums, and it can actually make life harder when you're declaring XML internally, as the parser needs to put everything in a namespace and if things appear in the language namespace, all access via actionscript will fail unless the developer has opened that namespace.
Mar 11, 2009
Gordon Smith says:
> mx.styles: This folder only exists to hold style metadata. > The metadat...> mx.styles: This folder only exists to hold style metadata.
> The metadata should be moved out of the source hierarchy
What does "out of the source hierarchy" mean? Would it live in something like frameworks/metadata and be shared by frameworks/projects/framework, frameworks/projects/airframework/, frameworks/projects/flex4, etc.?
Mar 16, 2009
Ely Greenfield says:
In the name of keeping the work involved here scoped to what needs to be done fo...In the name of keeping the work involved here scoped to what needs to be done for developer visible usability, I've removed the work item to move the metadata out of the source tree.
Mar 11, 2009
Gordon Smith says:
If we have to have a separate Spark namespace (rather than putting the Spark com...If we have to have a separate Spark namespace (rather than putting the Spark components into the MXML 2009 namespace), it seems like the default prefix should be sp: rather than s:.
Mar 11, 2009
Gordon Smith says:
I prefer option 1 or 2 rather than making a new toplevel namespace. To me, spark...I prefer option 1 or 2 rather than making a new toplevel namespace. To me, spark.* sounds as unrelated to mx.* as orange.* is to apple.*.
Mar 11, 2009
Gordon Smith says:
The current plan is to merge mx.graphics.TextGraphic and mx.components.TextView ...The current plan is to merge mx.graphics.TextGraphic and mx.components.TextView into spark.components.RichText.
Mar 16, 2009
Ely Greenfield says:
Yes, but since that's still under investigation, I thought it would be best to l...Yes, but since that's still under investigation, I thought it would be best to leave it alone for the move.
Mar 11, 2009
Gordon Smith says:
If we're moving the style metadata files out of the package hierarchy, we should...If we're moving the style metadata files out of the package hierarchy, we should do the same thing with Version.as and let it be shared across projects.
Mar 16, 2009
Ely Greenfield says:
A nice idea, but I'm not sure worth the effort for now?A nice idea, but I'm not sure worth the effort for now?
Mar 11, 2009
Gordon Smith says:
You have two inconsistent rows in the table for where mx.effects.AnimationProper...You have two inconsistent rows in the table for where mx.effects.AnimationProperty is moving.
Mar 11, 2009
Gordon Smith says:
Do we really need spark.effects.animation? Could this be merged with spark.effec...Do we really need spark.effects.animation? Could this be merged with spark.effects.supportClasses?
Mar 12, 2009
Ely Greenfield says:
It's a well defined collection of functionality that customers might want to use...It's a well defined collection of functionality that customers might want to use independent of the effect classes. As such, I think it belongs in its own package.