Adobe
Products
Acrobat
Creative Cloud
Creative Suite
Digital Marketing Suite
Digital Publishing Suite
Elements
Photoshop
Touch Apps
Student and Teacher Editions
More products
Solutions
Creative tools for business
Digital marketing
Digital media
Education
Financial services
Government
Web Experience Management
More solutions
Learning Help Downloads Company
Buy
Home use for personal and home office
Education for students, educators, and staff
Business for small and medium businesses
Licensing programs for businesses, schools, and government
Special offers
Search
 
Info Sign in
Welcome,
My cart
My orders My Adobe
My Adobe
My orders
My information
My preferences
My products and services
Sign out
Why sign in? Sign in to manage your account and access trial downloads, product extensions, community areas, and more.
Adobe
Products Sections Buy   Search  
Solutions Company
Help Learning
Sign in Sign out My orders My Adobe
Preorder Estimated Availability Date. Your credit card will not be charged until the product is shipped. Estimated availability date is subject to change. Preorder Estimated Availability Date. Your credit card will not be charged until the product is ready to download. Estimated availability date is subject to change.
Qty:
Purchase requires verification of academic eligibility
Subtotal
Review and Checkout
Adobe Developer Connection / Flex Developer Center /

Flex mobile skins – Part 3: Multiplatform development

by Jason San Jose

Jason San Jose
  • Adobe
  • blogs.adobe.com/jasonsj

Content

  • Notable platform differences
  • Creating platform-specific skins and styles
  • ActionBar styling tutorial
  • Mobile theme overlay tutorial
  • Where to go from here

Created

12 July 2011

Page tools

Share on Facebook
Share on Twitter
Share on LinkedIn
Bookmark
Print
CSS Flash Builder Flex mobile multiscreen RIA skinning

Requirements

Prerequisite knowledge

Familiarity with ActionScript, CSS, and Flex skinning is required. Read Part 1 and Part 2 of this series before completing this tutorial.

User level

Intermediate

Required products

  • Flash Builder (Download trial)

Sample files

  • mobile-skinning-part3

In Part 2 of this series on creating Flex mobile skins, I discussed the effect of screen density (DPI) on component skinning and layout of mobile applications. I also showed how to use application scaling, density-specific bitmaps, and CSS media queries to adjust and accommodate for various DPI values.

Aside from screen size, screen density, and form factor differences, Flex mobile application developers now have to address differences across platforms. In addition to Android, Flex 4.5.1 and Flash Builder 4.5.1 support two more platforms to target for Flex Mobile projects: Apple iOS and BlackBerry Tablet OS. Each of these platforms has their own distinct look and feel, UI patterns, and Human Interface Guidelines (HIG).

The Mobile theme in Flex 4.5 doesn't cater to any one specific platform. Like Spark, the Mobile theme has a neutral look and feel with design elements that generally work across platforms. Depending on your needs and your customers' needs, you have the freedom to change the appearance of your applications quickly using CSS styling or you might opt for additional control with more advanced mechanisms such as custom skinning, FXG, or even platform-specific skins that blend in well with other native applications.

Notable platform differences

Each platform supported by AIR has its own unique features, characteristics, and challenges. Flex 4.5.1 accounts for a few of these challenges already and gives you the option to add new, platform-specific behavior when necessary. This section briefly covers the major differences that can have an effect on both the visual and behavioral design of your application.

Hardware buttons

AIR on Android adds keyboard support for buttons found on Android hardware: Home, Back, Menu, and Search. These buttons may be on the physical hardware or may be present on-screen. Some device manufacturers omit the Search button.

The Back button on Android is used to navigate back to the previous activity, even if that activity is not part of the current application.

iOS devices and the BlackBerry PlayBook don't have a dedicated Back button. Instead, iOS and PlayBook applications typically place an optional soft Back button in the top left corner of the screen. For these two platforms, the Back button's navigation behavior is local to each application.

The Menu button on Android opens an options menu (that is, the ViewMenu mobile component in Flex 4.5). The options menu displays a list of commands (as buttons) that are used in the current activity.

The closest equivalent on iOS is the action sheet. The action sheet displays a list of actions available for the currently active or currently selected item.

The BlackBerry PlayBook has a touch-sensitive bezel that applications can use to display a container of arbitrary controls.

The Search button on Android is typically used for search data within the application context. For example, a contacts application would provide a text search to filter contact data. The search activity on Android has a consistent look and feel for all applications. Neither iOS nor BlackBerry Tablet OS have application-specific search UI design elements.

Usable screen area

Android 2.x and iOS show a status bar at the top of the application that is hidden when an application is using full screen mode.

In Android 3.x Honeycomb, the status bar at the bottom of the screen is always visible, full screen or not.

Applications for the BlackBerry PlayBook are run in full screen by default. A swipe down from the top right corner will show the system status bar, but this will not resize the AIR application window.

Typography

The default sans serif device font used by AIR differs by device. The PlayBook uses Myriad Pro, iOS uses Helvetica, and Android uses Droid Sans.

To be clear, even when using the same font size across devices with the same DPI, font metrics will be different due to the different fonts in use. The amount of text you can fit in a given area will vary across screen sizes and platforms (see Figure 1).

Figure 1. On the left a BlackBerry PlayBook (landscape, cropped), in the center an Apple iPod 4th generation (portrait), and on the right a Samsung Galaxy S (portrait) using the default styles in the Flex Mobile theme.
Figure 1. On the left a BlackBerry PlayBook (landscape, cropped), in the center an Apple iPod 4th generation (portrait), and on the right a Samsung Galaxy S (portrait) using the default styles in the Flex Mobile theme.

Single lines of text are generally ascent centered (that is, not including descenders in text height) across all platforms. Skins in the Mobile theme also use ascent centering.

Soft keyboard

All three platforms have soft keyboard support in both portrait and landscape orientations.

Some Android phones, however, have a permanent hardware keyboard and no soft keyboard (for example, Motorola Droid Pro), and others have an optional hardware keyboard that supersedes the soft keyboard when open.

Android also allows third-party soft keyboards. Keyboards such as Swype and SwiftKey integrate seamlessly with AIR.

The size of the soft keyboard varies by platform, device, and even device orientation. Soft keyboards for all three platforms are aligned with the bottom edge of the screen in all orientations.

By default, Flex Mobile projects built in Flash Builder are automatically configured to shrink and grow the application height when the soft keyboard is activated and deactivated respectively.

Text input

On Android and BlackBerry PlayBook, text entry in an AIR application's TextField and the new StyleableTextField controls work without any issues.

The implementation of these controls on iOS, however, is a special case. In order to get full featured error correction and text selection on iOS, text editing occurs in a native control that is overlaid on top of the stage. This technique creates a few limitations when editing TextField and StyleableTextField content on iOS, including:

  • The restrict property is not supported while editing. The restrict behavior is applied after exiting a TextField.
  • Whitespace and dash characters are smaller, potentially causing multiline text to reflow when entering and exiting an editable TextField.
  • Text is not clipped by scrollRect properties specified on ancestor containers.
  • Keyboard events are not fired.
  • The native clear button (a gray circle with an X) always appears in the TextInput and is not configurable.

Color depth

AIR on Apple iOS and BlackBerry Tablet OS supports 32-bit color. AIR on Android is currently limited to 16-bit color using RGB565.

Human interface guidelines

Each platform vendor has its own set of Human Interface Guidelines (HIG) also known as UI guidelines:

  • Apple iOS Human Interface Guidelines
  • Google Android User Interface Guidelines
  • BlackBerry Tablet OS UI Guidelines

Following these conventions will help you create Flex mobile applications that look and feel like their native counterparts.

Platform-specific wrap-up

I've barely scratched the surface with respect to platform-specific issues. For more on this topic, you may want to visit www.androidpatterns.com and pttrns.com, two sites that are continuing to grow their catalogs of UI patterns.

While AIR allows designers and developers to build applications on a common runtime, it's still important to know when and how to take platform-specific differences into account while designing your applications. Flex mobile projects give you a range of options from using a single UI across all platforms to redesigning your UI for each supported platform.

Creating platform-specific skins and styles

Flex 4.5.1 and Flash Builder 4.5.1 provide basic tools for defining and using platform-specific styles and skins in your projects.

Using CSS media queries

In Part 2 of this series on creating Flex mobile skins, I discussed how to use the application-dpi custom media feature in a CSS media query to set DPI-specific styles such as font size and padding values. Flex 4.5 supports one additional custom media feature: os-platform . This feature allows developers to specify platform-specific styles. Here's a simple example that sets a default ActionBar chromeColor value, as well as Android-specific and iOS-specific values:

ActionBar { chromeColor: #000000; } @media (os-platform: "Android") { ActionBar { chromeColor: #999999; /* dark gray */ } } @media (os-platform: "IOS") { ActionBar { chromeColor: #6DA482; /* blue */ } }

This example code uses the default ActionBarSkin skin class from the Mobile theme and changes the chromeColor property. You can use this same technique to completely replace the default skin with your own platform-specific skin.

Using themes

The main drawback of using CSS for platform-specific skins is that all skins and their assets, regardless of platform, are compiled into your application. This is necessary since CSS media queries are computed at runtime, not compile-time. The end result is a larger binary file (APK, BAR, or IPA file), which increases download time and your application's footprint.

Another way to get platform-specific skins and styles is to compile your application separately for each platform, each time overlaying a different theme via the theme compiler argument. This gives you platform-specific styling without bloating your application binary.

Note that Flash Builder 4.5.1 does not have built-in support for per platform compiler arguments in a single project. You have three options:

  • Create your own build scripts
  • Manually change the arguments per platform for every build
  • Refactor your project into multiple projects that share the same base project and/or libraries

The third option provides the most control, giving you more options to add platform-specific behavior (for example, an on-screen back button for iOS and BlackBerry Tablet OS).

If you choose to use themes this way, choose a build option that works best for your workflow.

For more about theme support in Flex 4.x, see About themes in the Flex documentation.

ActionBar styling tutorial

As usual, the simplest way to make changes to appearance is to use CSS styles. For this example, I'll expand the ActionBar example styles I showed earlier to add a few more platform-specific nuances.

I have an app that I'm developing for a fictitious business reviews startup named holr!. They want their ActionBar to look like those in native applications on all three platforms, but they don't have the budget to spend on a custom skin.

For this tutorial, I'll show CSS examples for each platform. Remember that these styles should be defined in the application MXML file either in an <fx:Style> tag inline or an external file.

I'll start with the following application MXML, which I created using the View-based Application template from the Flex Mobile project wizard:

<?xml version="1.0" encoding="utf-8"?> <s:ViewNavigatorApplication xmlns:fx=http://ns.adobe.com/mxml/2009 xmlns:s="library://ns.adobe.com/flex/spark" firstView="views.holrHomeView"> <fx:Style> @namespace s "library://ns.adobe.com/flex/spark"; </fx:Style> <s:navigationContent> <s:Button label="Back"/> </s:navigationContent> <s:actionContent> <s:Button label="Save"/> </s:actionContent> </s:ViewNavigatorApplication>

Ideally, if my goal is to have a single binary, I would add some logic to suppress the back button in the ActionBar when running on Android. For this styling example, I'll leave it alone to keep things simple.

Android

The Mobile theme does a pretty good job of reflecting the look of today's Android applications. The flat-styled buttons are perfect for the job. All I have to do is change the chromeColor property to use the client's signature red color (see Figure 2). Since I'll be using the same color across all platforms, I don't need to wrap this rule in a media query.

s|ActionBar { chromeColor: #990000; }
Figure 2. holr! on Android (240 DPI)
Figure 2. holr! on Android (240 DPI)

Titles in the ActionBar are left-aligned by default. If you want to center the title (see Figure 3), add titleAlign:center to the ActionBar style rule.

Figure 3. holr! on Android (240 DPI) with titleAlign=center
Figure 3. holr! on Android (240 DPI) with titleAlign=center

Apple iOS

ActionBar styling for iOS gets a little bit trickier. The title is center-aligned and the buttons have a distinct shape and some non-zero padding. Luckily, the ActionBar has a defaultButtonAppearance style with two options for normal and beveled.

Setting the defaultButtonAppearance style of the ActionBar to beveled automatically sets several style values, including beveled buttons, padding around the navigation and action groups, and center title alignment (see Figure 4) . To see all the settings used for defaultButtonAppearance=beveled , find the Mobile theme's defaults.css file at 4.5.1/frameworks/projects/mobiletheme/defaults.css and look for usage of the .beveled style name selector.

@media (os-platform: "IOS") { s|ActionBar { defaultButtonAppearance: beveled; } }
Figure 4. holr! on Apple iPod Touch 4th generation (320 DPI)
Figure 4. holr! on Apple iPod Touch 4th generation (320 DPI)

BlackBerry Tablet OS

Styling the ActionBar for BlackBerry can be a little more complicated. The reason I say that is because RIM provides their own Flash UI framework with their own MovieClip-based components. While it's possible to integrate the native RIM components, in this example, I'll stick with Flex.

RIM uses an ActionBar-like container at the top of their built-in applications. Many of these apps use a background image or texture that shows through a transparent ActionBar. Like iOS, RIM uses center-aligned titles. However, RIM uses a normal font weight for their titles instead of bold.

RIM uses rounded buttons on the left and right of the ActionBar. Unlike iOS however, RIM does not use an arrow-styled back button (see Figure 5).

The PlayBook has an actual screen DPI of 170. This is high enough that the fontSize the Flex team selected for the 160 DPI classification is a tad smaller than what RIM recommends. I'll make some fontSize adjustments in this example to compensate. For a full set of styles with updated fontSize values for the PlayBook, download the defaults_BlackBerry_PlayBook.css sample file.

You can get pretty close to the RIM look and feel, but you'll have to override a few CSS rules from the Mobile theme that use advanced CSS selectors.

@media (os-platform: "QNX") { s|ActionBar { defaultButtonAppearance: beveled; } s|ActionBar #titleDisplay { fontSize: 22; fontWeight: normal; } s|ActionBar.beveled s|Group#navigationGroup s|Button { /* use the rounded button instead of the arrow button */ skinClass: ClassReference("spark.skins.mobile.BeveledActionButtonSkin"); } s|ActionBar.beveled s|Group#actionGroup s|Button, s|ActionBar.beveled s|Group#navigationGroup s|Button { fontSize: 16; fontWeight: normal; } }
Figure 5. holr! on BlackBerry PlayBook (160 DPI)
Figure 5. holr! on BlackBerry PlayBook (160 DPI)

The final application file looks like this:

<?xml version="1.0" encoding="utf-8"?> <s:ViewNavigatorApplication xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" firstView="views.holrHomeView"> <fx:Style> @namespace s "library://ns.adobe.com/flex/spark"; @namespace s "library://ns.adobe.com/flex/spark"; s|ActionBar { chromeColor: #990000; } @media (os-platform: "IOS") { s|ActionBar { defaultButtonAppearance: beveled; } } @media (os-platform: "QNX") { s|ActionBar { defaultButtonAppearance: beveled; } s|ActionBar #titleDisplay { fontSize: 24; fontWeight: normal; } s|ActionBar.beveled s|Group#navigationGroup s|Button { /* use the rounded button instead of the angled back button */ skinClass: ClassReference("spark.skins.mobile.BeveledActionButtonSkin"); } s|ActionBar.beveled s|Group#actionGroup s|Button, s|ActionBar.beveled s|Group#navigationGroup s|Button { fontSize: 20; fontWeight: normal; } global { fontSize: 20; } } </fx:Style> <s:navigationContent> <s:Button label="Back"/> </s:navigationContent> <s:actionContent> <s:Button label="Save"/> </s:actionContent> </s:ViewNavigatorApplication>

A quick note about the advanced CSS selectors: The Mobile theme uses styleName and ID selectors to isolate styles to specific ActionBar skin parts. I do this to avoid inadvertently styling other components in the ActionBar content groups. For example, I don't want the buttons in the ActionBar to have the same fontSize value as the title text. I really want the title to stand out with larger text.

Styling wrap-up

Styling the built-in Mobile theme skins is pretty simple. Although platform-specific styling for the ActionBar is more complex, it isn't too difficult thanks to the defaultButtonAppearance and titleAlign styles.

Mobile theme overlay tutorial

Now it's time for the hard part. This second tutorial will help you lay the groundwork to build your own themes for Flex Mobile projects.

If you prefer, you can skip the main tutorial and go straight to my example iOS theme. This theme is just a proof of concept, but it does demonstrate how powerful Flex skinning can be.

To clarify, the tutorial that follows explains how to create a theme overlay that uses the Mobile theme as a base theme. In general, Flex 4 theme authors should create overlays for the Spark theme for desktop projects or the Mobile theme for mobile applications. Many important style attributes are only valid when using a specified theme name. For example, chromeColor is only valid in the Spark and Mobile themes. If you create and use a standalone theme and reference chromeColor in CSS or MXML, the compiler will log an error.

Phase 1: Create a theme project

The first step to creating a custom theme is to create a library project. This project will output the theme SWC that you can reuse across any compatible project.

  1. Choose File > New > Flex Library Project.
  2. Type a name for the project; for example, type mobiletheme_ios.
  3. Under Configuration, choose Mobile Library to include mobilecomponents.swc (see Figure 6).
Figure 6. Creating a mobile library.
Figure 6. Creating a mobile library.
  1. Click Next.

Since you're extending the Mobile theme, you need to add its SWC in order to extend classes and reference other dependencies from the theme.

  1. Click Add SWC.
  2. In the Add SWC dialog box (see Figure 7), type the path to the Mobile theme SWC in the SDK: /path/to/Adobe Flash Builder 4.5/sdks/4.5.1/frameworks/themes/Mobile/mobile.swc.
  3. Click OK.
Figure 7. Adding the Mobile theme SWC.
Figure 7. Adding the Mobile theme SWC.

Once it is added to the Build Path Libraries tree, the SWC should be expanded.

  1. Double-click Link Type (see Figure 8).
Figure 8. The Link Type of mobile.swc.
Figure 8. The Link Type of mobile.swc.
  1. Select External as the Link Type (see Figure 9) and click OK.
Figure 9. Changing the link type to External.
Figure 9. Changing the link type to External.

This is required so that dependencies that you add from the Mobile theme SWC aren't also compiled into your custom theme. The default mobile project configuration (see /path/to/4.5.1/frameworks/airmobile-config.xml) adds the Mobile theme SWC by default. Later on when creating the Flex Mobile project, you don't have to add the Mobile theme SWC separately.

  1. Double-click Source Attachment for mobile.swc
  2. Set the location to /path/to/Applications/Adobe Flash Builder 4.5/sdks/4.5.1/frameworks/projects/mobiletheme/src and click OK (see Figure 10).
Figure 10. Changing the source location.
Figure 10. Changing the source location.

This is required to support features such as Go To Definition for classes in the Mobile theme. The path that Flash Builder initially uses after you add the SWC is incorrect.

  1. Click Finish to create the project.

Phase 2: Configure the library project for theme development

Now that you have a project, a few more steps are required to configure it as a theme.

  1. Create a defaults.css file in your project's root directory (not the main src folder, but the project folder itself). This file will define the style rules for the theme.
  2. Choose Project > Properties.
  3. On the Flex Library Compiler page, in Additional Compiler Arguments, add:
-include-file defaults.css ../defaults.css.
  1. Click OK.

This completes the basic setup of a theme SWC. After defining styles in defaults.css and adding additional skin classes, the SWC file in the project bin folder can be used as a theme overlay in two ways:

  • Add -theme+=/path/to/theme.swc to the Additional Compiler Arguments on the Flex Compiler properties page.
  • Import the theme SWC by choosing Project > Properties > Flex Theme.

If you're producing themes, you can add metadata and a preview image along with your theme SWC or CSS file for a more polished importing experience. For more information on theme production, see Creating Themes.

Phase 3: Create a Flex Mobile project

After setting up the theme, but before creating my skins, I'll set up a project to test my theme as I'm developing it. In this project, I use a few techniques to make iterating on my theme a bit easier.

  1. Choose File > New > Flex Mobile Project. Type a project name, use the defaults settings, and click Next.
  2. Click Add Project and add your theme project.
  3. Click Finish and Flash Builder will create the project.
  4. Choose Project > Properties.
  5. In the Flex Compiler properties page, add -theme+=/<theme project name>/bin/<theme project name>.swc to the Additional Compiler Arguments. This argument applies the theme overlay to the project.
  6. Click OK.
  7. In the theme project, add a class named ThemeClasses to the default package.
  8. In the mobile project, in the main Application MXML file, add a reference to this class in an <fx:Script> tag. A simple statement such as ThemeClasses; is sufficient.

You might be wondering why I don't use the Flex Theme properties page in the project Properties dialog box to set up a theme. The short answer is that the theme feature in Flash Builder was designed mainly for importing prebuilt themes that don't change. As I make incremental changes to the theme project, I want my mobile project to recompile. These steps are the minimum required to get Flash Builder to recompile the mobile project when the theme project changes.

Phase 4: Create skins and styles

This phase makes up the bulk of the work. I've already described the mobile skinning development process in detail in Part 1 and Part 2 of this series on creating Flex mobile skins. To recap, the process is as follows:

  1. Create graphic assets as FXG.
  2. Create a new MobileSkin-based skin or subclass an existing Mobile theme skin.
  3. Define the hostComponent property.
  4. Specify the FXG assets.
  5. Support Mobile theme styles as appropriate (for example, chromeColor ).
  6. Specify CSS style rules in the theme's defaults.css file. For each component you plan to support, specify the custom skinClass and style values that are not affected by DPI.
  7. Specify additional CSS style rules using the application-dpi media query feature to filter values specific for each DPI for font size and padding styles.
  8. Repeat for each host component.

Since I've covered this process already in earlier articles, I'll skip the gory details. If you've followed the steps in this tutorial so far, you can copy the CSS example from the first tutorial in this article into the theme library project defaults.css file. When you run the mobile project, it will pick up the style rules from the theme.

Proof of concept: iOS theme

The iOS theme that I created relies heavily on custom skins based on the MobileSkin base class and the default skins from the Flex 4.5 Mobile theme.

Since themes are intended to be used with any type of project, I didn't use the os-platform media query feature to filter style rules based on platform. This gives me the flexibility to use my iOS theme on Android or BlackBerry Tablet OS applications if desired.

To try out the iOS theme with Flash Builder 4.5.1, download the mobiletheme_ios_usage.fxp sample file and follow the instructions below.

  1. Choose File > Import Flash Builder Project.
  2. Navigate to and select mobiletheme_ios_usage.fxp.
  3. Click Finish.
  4. Select the mobiletheme_ios_usage project and click the Run button (or choose Run > Run As > Mobile Application).

Flash Builder automatically creates a run configuration for you.

  1. For the Target Platform, select Apple iOS.
  2. For the Launch Method, select On Desktop.
  3. Select an iOS device to simulate.
  4. Click Run (see Figure 11).
Figure 11. The proof of concept application running on a 4th Generation iPod
Figure 11. The proof of concept application running on a 4th Generation iPod

To package and deploy this project to an iOS device, you'll need to set up an Apple Developer account. For more information, read Andrew Shorten's article Using Flash Builder 4.5 to package applications for Apple iOS devices.

To learn more about mobile skinning and the work I've done in this proof of concept, see my blog post titled Example: iOS Theme for Flex Mobile Projects.

Where to go from here

As you build mobile applications, consider which platform-specific patterns that you might apply to your project. As the smartphone and tablet market continues to grow and diversify, AIR and Flex will continue to provide a powerful cross-platform approach to mobile application development.

For more on mobile development with the Adobe Flash Platform see The Mobile and Devices Developer Center.

Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License+Adobe Commercial Rights

This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License. Permissions beyond the scope of this license, pertaining to the examples of code included within this work are available at Adobe.

More Like This

  • Web and mobile reference applications with Flex 4.5 SDK and Flash Builder 4.5
  • Using automated tools across the lifecycle to develop higher quality Flex applications
  • Increasing Flex and ActionScript development productivity with Flash Builder 4.5 and SourceMate 3.0
  • Why choose Flex and PHP
  • DigiPri Widgets Sales Dashboard – Part 3: Understanding the dashboard application
  • DigiPri Widgets Sales Dashboard – Part 4: Exploring the code in Flash Builder
  • Tool-based approaches for data-centric RIA development
  • Skinning a Flex 4 desktop application with MXML graphics
  • DigiPri Widgets Sales Dashboard – Part 1: Overview
  • DigiPri Widgets sales dashboard – Part 2: Setting up the server application

Tutorials & Samples

Tutorials

  • Flex mobile performance checklist
  • Flex and Maven with Flexmojos – Part 3: Journeyman
  • Migrating Flex 3 applications to Flex 4.5 – Part 4

Samples

  • Twitter Trends
  • Flex 4.5 reference applications
  • Mobile Trader Flex app on Android Market

Flex User Forum

More
07/25/2011 Flash Player Debug Issues - Safari 5.1 & Chrome 13
04/22/2012 Loader png - wrong color values in BitmapData
04/22/2012 HTTPService and crossdomain.xml doesn't work as expected
04/23/2012 Memory related crashes in Flex application

Flex Cookbook

More
04/06/2012 How to detect screen resize with a SkinnableComponent
02/29/2012 Embed Stage3D content inside Flex application components
02/15/2012 Custom WorkFlow Component
02/09/2012 Using Camera with a MediaContainer instead of VideoDisplay

Products

  • Acrobat
  • Creative Cloud
  • Creative Suite
  • Digital Marketing Suite
  • Digital Publishing Suite
  • Elements
  • Mobile Apps
  • Photoshop
  • Touch Apps
  • Student and Teacher Editions

Solutions

  • Digital marketing
  • Digital media
  • Web Experience Management

Industries

  • Education
  • Financial services
  • Government

Help

  • Product help centers
  • Orders and returns
  • Downloading and installing
  • My Adobe

Learning

  • Adobe Developer Connection
  • Adobe TV
  • Training and certification
  • Forums
  • Design Center

Ways to buy

  • For personal and home office
  • For students, educators, and staff
  • For small and medium businesses
  • For businesses, schools, and government
  • Special offers

Downloads

  • Adobe Reader
  • Adobe Flash Player
  • Adobe AIR
  • Adobe Shockwave Player

Company

  • News room
  • Partner programs
  • Corporate social responsibility
  • Career opportunities
  • Investor Relations
  • Events
  • Legal
  • Security
  • Contact Adobe
Choose your region United States (Change)
Choose your region Close

North America

Europe, Middle East and Africa

Asia Pacific

  • Canada - English
  • Canada - Français
  • Latinoamérica
  • México
  • United States

South America

  • Brasil
  • Africa - English
  • Österreich - Deutsch
  • Belgium - English
  • Belgique - Français
  • België - Nederlands
  • България
  • Hrvatska
  • Česká republika
  • Danmark
  • Eastern Europe - English
  • Eesti
  • Suomi
  • France
  • Deutschland
  • Magyarország
  • Ireland
  • Israel - English
  • ישראל - עברית
  • Italia
  • Latvija
  • Lietuva
  • Luxembourg - Deutsch
  • Luxembourg - English
  • Luxembourg - Français
  • الشرق الأوسط وشمال أفريقيا - اللغة العربية
  • Middle East and North Africa - English
  • Moyen-Orient et Afrique du Nord - Français
  • Nederland
  • Norge
  • Polska
  • Portugal
  • România
  • Россия
  • Srbija
  • Slovensko
  • Slovenija
  • España
  • Sverige
  • Schweiz - Deutsch
  • Suisse - Français
  • Svizzera - Italiano
  • Türkiye
  • Україна
  • United Kingdom
  • Australia
  • 中国
  • 中國香港特別行政區
  • Hong Kong S.A.R. of China
  • India - English
  • 日本
  • 한국
  • New Zealand
  • 台灣

Southeast Asia

  • Includes Indonesia, Malaysia, Philippines, Singapore, Thailand, and Vietnam - English

Copyright © 2012 Adobe Systems Incorporated. All rights reserved.

Terms of Use | Privacy Policy and Cookies (Updated)

Ad Choices

Reviewed by TRUSTe: site privacy statement