Flex 3.0 Planning
This section outlines the planned feature requirements and development priorities for Flex 3. All features that were planned for Flex 3 (including the data visualization components, which are not free) are listed on this page (along with indications if they made it into the release), and where possible links to the feature specifications have been included. For Flex 3 we are not able to link to every specification as there may be proprietary information included. For Flex 4 all SDK specifications will be made available for public viewing and comment.
Note: Not every feature listed on this page made it into Flex, and in many cases the specifications may not match the final implementation. Be sure to read documentation for all features!
Project Milestones
| Date |
Target |
| April 9, 2007 |
M1 Release (Alpha) |
| June 11, 2007 |
M2 Release (Beta 1) |
| October 2007 |
M3 Release (Beta 2) - Feature Complete |
| December 2007 |
M4 - Release Candidate |
| February 2008 |
Final Release |
Flex 3 Release Themes and Features
Designer/developer workflow
Improving the usability and overall experience of an online application can deliver increased productivity, reduce support costs, increase customer satisfaction, and drive top-line revenue. Flex 3 should make it easy for developers and designers to work together to create unique experiences. The Flex framework should provide greater control over the look and feel of an application, and Flex Builder should make it easier for developers to incorporate designs created in the Creative Suite 3 tools or other tools used by professional designers.
Baseline Alignment | Enhanced Constraints | Flex Component Kit for Flash CS3 | OpenType Font Embedding | Skinning Improvements
Working with data
Rich Internet applications are often focused on enabling users to work with data. Flex Builder 3 should make it easier for developers to use Flex services to access data by providing tools for learning and developer productivity when working with remote services. Flex 3 should enhance the components used to display and manipulate data within an application.
Advanced DataGrid | Charting Enhancements | List and Data Effects
Adobe AIR applications
Adobe AIR (formerly known as Apollo) enables developers to create applications that combine the benefits of web applications - network and user connectivity, rich media content, ease of development, and broad reach - with the strengths of desktop applications - application interactions, local resource access, personal settings, powerful functionality, and rich interactive experiences. Flex 3 should make deployment to Adobe AIR a native capability in Flex by introducing new components and incorporating the Adobe AIR development tools into the SDK and Flex Builder.
Adobe AIR controls | Adobe AIR framework integration | Adobe AIR tools
Platform evolution
Flex 2 wasn't perfect Version 3 should continue to enhance the core framework to improve the end user experience, increase developer productivity, and integrate with common standards and web technologies. Most features in this category are a direct result of customer feedback.
Accessibility Improvements | Command-line Tools | Compiler Performance | Compiler Modules | Deep Linking | Persistent Framework Caching | Profiler Enablement | Runtime Localization
Accessibility Improvements
Planned milestone: M1
Add accessibility support to Slider and ColorPicker and fix a number if high-priority bugs.
Adobe AIR controls
Planned milestone: progressive throughout all
Add controls that leverage the functionality provided by Adobe AIR:
- File system controls
- Provide the building blocks of a File Picker but the picker itself can be a sample
- Window control
- HTML control
- Menu control
Adobe AIR framework integration
Planned milestone: progressive throughout all
The framework needs to be updated to support the following:
- Applications that run in an Adobe AIR window
- Drag and Drop integration with the native Adobe AIR system to support drag and drop to/from the desktop
Adobe AIR tools
Planned milestone: M1
Integrate the Adobe AIR SDK tools such as the debug runtime and packager into the Flex SDK.
Advanced DataGrid
Planned milestone: progressive throughout all
This feature is part of the Flex Data Visualization package which is part of Adobe Flex Builder
Create an extension to the Flex 2 DataGrid that provides advanced visualization functionality commonly needed in business intelligence applications. Capabilities should include:
- Display of hierarchical data (e.g., TreeGrid)
- Column grouping
- Custom rows (useful for headers and summaries)
- New collections to support grouping and summarization
- Multi-column sorting
- Additional formatting APIs
Baseline Alignment
Planned milestone: M3 (this feature was deferred)
Add support to all components and containers to support baseline alignment.
Allow developers to set the verticalAlign style to "baseline"
Expose a property on UIComponent to denote the baseline
Allow baseline to be considered as part of a constraint-based layout
Charting Enhancements
Planned milestone: M2-M3
This feature is part of the Flex Data Visualization package which is part of Adobe Flex Builder
Allow user interaction with charts and support more developer-controlled display options.
- Chart interaction to allow selection and dragging
- Arbitrary number of display axes
- Control over fills on a per-item basis
- Per-item labels
- More control over the DateTimeAxis to allow Work Week display
- Data-oriented graphics operations (available in M3)
Command-line Tools
Planned milestone: M2
Include new command-line tools to increase developer productivity.
- The Flex Compiler Shell (FCSH) which improves compilation speed by keeping everything in memory and supporting incremental builds
- The Flex Ant Tasks to allow easy building of Flex applications from Ant scripts
- The RSL optimizer to remove extraneous information from RSLs, reducing download size
Compiler Performance
Planned milestone: M2 and M3
Improve compilation speed and memory consumption by eliminating the recompilation of dependent classes when no material changes have occurred.
- Noticeable improvements are expected when the signature of a class isn't changed (meaning variables and method signatures that could be accessed by other classes)
Compiler Modules
Planned milestone: M2
Allow developers to rapidly compile, test and deploy an application by simply requesting the main application file from a web browser, similar to working with server-side scripting languages such as PHP, ColdFusion or JSP.
- Support IIS on Windows with an ISAPI filter
- Support Apache on Windows, Mac, and Linux
- Note: A Java compiler module is provided as part of LCDS but will eventually move into the SDK
Deep Linking
Planned milestone: M2
Add support for improved interaction between the Flex application and the browser to support the following use-cases:
- as application state changes the browser url should be updated to reflect the current state
- the user should be able to bookmark the current URL, allowing the user to return to a specific state in the application
- the user should be able to email the current URL to another user who could then enter the application at the specified state
- the Back and Forward buttons should allow the user to navigate to recently visited application states
- the application should receive notifications when the user has changed the address bar themselves
Flex 3 should solve the low-level browser interaction problems, enabling developers to build higher-level functionality on top. We will consider adding higher-level functionality into the framework in a future release.
Detailed Information
Enhanced Constraints
Planned milestone: M2 and M3
Update the Canvas container to expand on the Flex 2 constraint-based layout system and accommodate sibling-relative layouts.
- Add the concept of constraint regions to Canvas that can be created in the horizontal or vertical direction
- Allow items to be constrained along their baseline
- Note: Panel and Application receive the new constraint support when layout="absolute"
Deprecate Grid and its associated classes as constraints are a more efficient implementation
Detailed Information
Flex Component Kit for Flash CS3
Planned milestone: M2
Add a complete workflow for authoring content or components in Flash CS3 that can be seamlessly integrated into Flex applications.
- Introduce a new class, UIMovieClip, to enable Flash symbols to work in Flex without changes
- Map the currentState property to frame labels
- Enable transitions when the currentState property changes by animating between different frame labels
- Support user-specified bounding boxes for measurement and clipping
- Support a content property to easily allow a Flash symbol to act as a container of Flex content
- Deliver a JSFL command that simplifies the process of creating a Flash document meant to create symbols that work in Flex
- Deliver a JSFL command that simplifies the process of enabling a Flash symbol to work in Flex
Detailed Information
List and Data Effects
Planned milestone: M3
Enhance the usability and visual appeal of some of the List-based components (List, TileList, DataGrid) by adding more animation support.
- Smooth scrolling with fractional scroll positions
- Effects that occur when data changes
OpenType Font Embedding
Planned milestone: M3
Add support for embedding OpenType fonts in a Flex application.
Persistent Framework Caching
Planned milestone: M2
- Reduce the size of the average Flex application by making it easier to share common framework code across applications.
Profiler Enablement
Planned milestone: M2 and M3
Catch-all item for work done in the SDK to support the Profilers in Flex Builder.
Runtime Localization
Planned milestone: M2
Enable applications to change the locale for resource bundles at runtime.
- Load resource module SWFs containing localized resources, either at launch time or later.
- Specify images, sounds, fonts, and programmatic classes - in addition to simple strings - as resources.
- Use resources as styles and skins - in addition to simple properties - using either declarative (MXML) or procedural (AS) syntax.
- Resources for multiple locales should be able to exist simultaneously in the application.
- Resource lookup should support locale chaining, meaning that if a resource is not found in one locale, others can be searched.
- If a resource module is loaded after the application has launched, the application should automatically refresh with the new resources assuming that the resources were used declaratively. For resources that are used procedurally, developers can override a method or write event handlers to support a runtime locale change.
- Create resources programmatically at runtime rather than compiling them.
In addition, fix two problems associated with the current resource design:
- Only one copy of each resource will be created.
- The new design will not involve accessing resources at static-initialization time.
Detailed Information
Skinning Improvements
Planned milestone: M1
Enhance the skinning system to better support designer/developer workflow.
- Add the concept of states to the Flex skinning mechanism so that only one instance of a skin need be created per component (and fewer styles need to be declared)
- Fix and improve a number of issues with skinning and styling components and containers.
- Graphical border skins (ex. Assigning a jpg as the borderSkin style of a Panel) should use the scale9Grid property (if it is defined) for the borderMetrics. The borderMetrics help define the bounding box for the content inside of a container with a borderSkin.
- Add new DataGrid subcomponent skins. Expose a headerBackgroundSkin style which draws the background of the DataGrid header. Expose a horizontalSeparatorSkin, horizontalLockedSeparatorSkin, verticalSeparatorSkin and a verticalLockedSeparatorSkin which draw the horizontal and vertical lines between the columns and rows of the DataGrid.
- Panel highlight isn't showing up if headerHeight == 0
- Make it easier to skin a Panel. Move the borderThickness logic in Panel into a new PanelSkin programmatic skin class.
- Fix the padding logic for Button. Button should no longer have a minimum padding value. Fix issues with labelPlacement and padding. These changes will apply to all Button subclasses.
- Fix the padding logic in ComboBox. Support paddingTop and paddingBottom when editable == false.
- Add a new textInputStyleName style to ComboBox to expose the TextInput (which displays the currently selected item) to styling.
- FormItemLabel should support the textAlign style.
- TabNavigator should use the borderMetrics.top value to control the distance between the TabBar and the ViewStack.
- Add a new tabOffset style to TabNavigator which controls the horizontal placement of the TabBar.
- Change the size and layout logic of ScrollBar. None of the subcomponents (upArrow, downArrow, thumb, track) should be stretched width-wise and horizontally centered. Add a new thumbOffset style to adjust the horizontal position of the thumb. The width of the entire ScrollBar should equal the width of the widest subcomponent.
- Make it easier to skin a ProgressBar. Add a new maskSkin style to control the bar's mask. Add a new indeterminateMoveInterval style to control the indeterminate bar's movement.
|