Menu

Flex 3.0 Planning

SourceForge Editorial Staff

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] ](%20%5B%23Enhanced%20Constraints) | [#Flex Component Kit for Flash CS3] ](%20%5B%23OpenType%20Font%20Embedding) | #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] ](%20%5B%23Charting%20Enhancements) | #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] ](%20%5B%23Adobe%20AIR%20framework%20integration) | #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] ](%20%5B%23Command-line%20Tools) | [#Compiler Performance] ](%20%5B%23Compiler%20Modules) | [#Deep Linking] ](%20%5B%23Persistent%20Framework%20Caching) | [#Profiler Enablement] ](%20%5B%23Runtime%20Localization)


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.

Related

Wiki: Deep Linking Specification
Wiki: Enhanced Constraints Specification
Wiki: Flex 3
Wiki: Flex Component Kit Specification
Wiki: Runtime Localization Specification

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.