Apache Flex 4.12.1 is an update to Apache Flex 4.12.0 

AIR and Flash Player support

  • Support for Flash Player 13.0
  • Support for AIR 13.0

Compiler changes

Fix issue with 3rd party license components not working

FLEX-33421  Broken metadata RequiresLicense.

This means that third-party Flex libraries with licence management, such as IBM Ilog Elixir(TM)  , can now be used in applications compiled with Apache Flex SDK 4.12.1. 

New features

Extended css-media query support

Flex CSS media queries (explained here)  now supports new media features:

  • os-version
  • device-width
  • device-height
  • -flex-device-diagonal
os-version:

os-version feature allows to condition css styles according to the OS version the application is running on.

It's usually used in combination with os-platform, and with min- or max- modifieres to target specific version ranges.

Syntax: Valid versions can have up to 3 parts, separated by dots ( 7,  4.1,  "3.1.2").  versions with 3 parts must be quoted. 

targeting iOS 7 or higher
 @media (os-platform:"IOS") AND (min-os-version: 7){
   /* IOS7 css  */
}
targeting Android Jelly Bean or higher
 @media (os-platform: "android") AND (min-os-version: "4.1.2") {

    /* JELLY BEAN css */
 }

 os-version cannot be tested on AIR mobile emulator (ADL), because the os-version will take the value of desktop OS the emulator is running on, and not the target device os version.

Note:  os-version has been introduced in SDK 4.12.0 to support iOS7 status bar and fully implemented in 4.12.1 to also recognize Android versions and 3 parts version numbers (x.y.z).

 

device-width, device-height and -flex-device-diagonal:

These media features allow to condition css styles to the device size, and will be typically used to implement responsive-design apps (i.e. tablet vs. phone) 

  • device-width : matches the current device width, depending on the device orientation.
  • device-height : matches the current device height, depending on the device orientation.
  • -flex-device-diagonal matches the device diagonal, regardless of the device orientation.  
      this feature is prefixed with -flex because it's not part of W3C standard media features.

Syntax: All three features can be expressed with units.
The following are valid units: (no unit), px, pt, in, cm, dp 

  • no unit : means physical pixels
  • px : means physical pixel
  • pt : means pixel-equivalent at 72 ppi 
  • cm: means centimeters
  • in : means inches
  • dp : (density-independent pixel) is roughly pixel-equivalent at 160 ppi.

pt, cm and in are based on the real device ppi, while dp is based on normalized density  (ie. 120, 160, 240, 320,...) to be consistent with original specifications

It's better to use -flex-device-diagonal on mobile devices because it's guaranteed to not change when the device orientation changes, and avoids costly styles recomputing.

example targetting phone and tablet devices
/* phones */
@media (-flex-max-device-diagonal: 5in) {
    global {    fontSize: 24;  }
}
/*  tablets    */
@media (-flex-min-device-diagonal: 5in)  AND (-flex-max-device-diagonal: 11in)
{
    global {  fontSize: 16;  }
}

media features above can also be accessed from ActionScript with eg. the following statement:

import mx.utils.MediaQueryParser;
 
MediaQueryParser.instance.flexDeviceDiagonal 

This returns an object of type: mx.styles.CSSDimension (see http://flex.apache.org/asdoc/ for reference)

 

Resolved issues

Issue TypeKeySummary
BugFLEX-34231StageText displays wrong text
BugFLEX-34230StageText skins prevents garbage collection of component with TextInputs and TextAreas
BugFLEX-34229DataGridEditor doesn't remove the Event.DEACTIVATE listener on destroyItemEditor()
BugFLEX-34228spark datagrid syntax
BugFLEX-34216GridItemEditor's save() method is still called despite the grid not being on stage anymore
BugFLEX-34209DateFormatter's parseDateTime method doesn't handle AM PM properly when time is in the 12 PM hour
BugFLEX-34200ResourceModuleProxy doesn't load properly
BugFLEX-34189ActionBar button is too big in 640 DPI
BugFLEX-34171TLF problems deleting Hebrew
BugFLEX-34145Mobile Theme: TextInput with layoutDirection="rtl" becomes mirror on focus out.
BugFLEX-34142MobileGridColumn headerStyleName property has no effect
BugFLEX-34141TextInput does not trigger SoftkeyboardActivate events
BugFLEX-34133ADG RTE in columnHeaderWordWrap
BugFLEX-34132DataGrid columns with no dataField specified gives "[object Object]"
BugFLEX-34098Deleteing/Replacing Surrogate-Pair string causes RTE in TLF
BugFLEX-34057RTE on pasting empty data after Excel operation
BugFLEX-34013RTE at TextClipboard#importToScrap()
New FeatureFLEX-33994Need a way to distinguish phone and tablet target devices through css
BugFLEX-33972TextArea does not display Right to Left Text correctly on iOS 7
New FeatureFLEX-33949Manage OS version in @media CSS
BugFLEX-33423We can input text over than maxChars when we use "Insert" mode.
BugFLEX-33421Broken [RequiresLicense] metadata
BugFLEX-33350fix compiler warning with CallOutButton for web apps

 

Known limitations

Adobe Flash Builder Integration

Adobe Flash Builder 4.7 and Adobe Flash Builder 4.6 both contain a bug where, when generating the .mxml file for a new project that uses Apache Flex SDK 4.10.0 or later Spark Application, Flash Builder will incorrectly insert the attribute:

layout="absolute"

This results in a compile error in the new project.

The remedy is to simply remove the errant attribute.

The following wiki page has been set up to contain the latest news on Adobe's
attempt to correct this problem:

https://cwiki.apache.org/confluence/display/FLEX/Adobe+Flash+Builder+'New+Project'+Bug

Adobe has provided a patch for Flash Builder 4.7 that resolves this issue:

http://helpx.adobe.com/flash-builder/kb/flex-new-project-issue--.html

 

  • No labels