ave_site_banner AVE IMPERATOR© 2003-2012 All rights reserved
Imperator FLA arrow Limits  
 °FLA v7
 Features
 Limits
 Requirements
 Manual
 Version History
 Buy °FLA v7
 Action Glyphs v1.0
  Demo Project
  Manual
 Downloads
 Contact
 Impressum

Limits  

The FLA Format covers only a part of all the things you are able to realize using the SWF technology. There are a lot of third party products on the market exporting SWF files and some of them use special features available only in the SWF Format (like the more basic and flexible "SWF-ActionScript" which reveals a variety of functionalities "FLA-ActionScript" simply doesn't have yet). The attempt to create a FLA from such a SWF will (partially) fail since it is impossible to recover elements or features that don't exist in the year 2009 (and probably never will).

In detail :  
Scenes, Labels & GoToLabel-Actions (with ActionScript 1.0 &. 2.0)
"FLA-ActionScript" vs. "SWF-ActionScript"
Layers
Library and Layer - names and folders
Buttons
Media
Components
Scenes, Labels & GoToLabel-Actions (with ActionScript 1.0 &. 2.0) up

All information about the Scenes of a FLA are lost, for they are compiled into one main timeline. Since a FLA could have different scenes containing similar Labels, GoToLabel-Actions are usually converted to matching GoToFrame-Actions. The Labels of every Scene however are compiled into the one timeline. That causes a lot of SWFs to have a main timeline with different Labels carrying identical names. If you use IMPERATOR °FLA to create a FLA from such a SWF, Flash will report a warning concerning the duplicate Label.

 
"FLA-ActionScript" vs. "SWF-ActionScript" up

Some Keywords used in "FLA-ActionScript" like gt, lt, ge or le cause compile-errors when you try to use them as variable names (e.g. var gt = 0;). In "SWF-ActionScript" these Operators are represented by numbers and not strings. Thus it is no problem to use gt as a variable name in a SWF. However, if you use IMPERATOR °FLA to create a FLA from such a SWF, Flash will deny to compile the ActionScript. Furthermore "FLA-ActionScript" sets relative restrictions to certain code-elements. For example: you can use only one GoTo-Action in each code-block. You won't find these restrictions in "SWF-ActionScript" though - for it allows you to use as many GoTo-Actions inside a code-block as you want.

In fact it would be wiser to see "FLA-ActionScript" as a collection of macros and functions based on "SWF-ActionScript". These macros and functions are far from covering every possibility "SWF-ActionScript" offers and so it is possible that some SWFs (not compiled/created with Flash) contain ActionScript that cannot be displayed nor realized with Flash.

The "FLA-ActionScript" features many conditions like if(), while(), for() or do{}while() which - when compiled - are all reduced to combinations of two Jump tags: the Conditional and the Unconditional Jump tag. It is impossible to tell the difference between the syntaxes:

"for( var a = 0; a < b; a++ ) { ... }"

and

"var a = 0; while( a < b ) { ... a++; }"

because there is none. When compiled the two syntaxes produce identical "SWF-ActionScript".

In "SWF-ActionScript" Math Constants are represented by their double value. "FLA-ActionScript" like Math.PI + 5 will be comipled into one double value (8.14159...). In other words every double value could be a combination of some Math Constant. Since it could take hours to test every double found in a SWF for combinations of a Math Constant, IMPERATOR °FLA simply recovers the double value.

Comments are part of the "FLA-ActionScript" only and are not written into the SWF during the compile-process.

 
Layers up

The hierarchy of the Layers inside a FLA gets deformed during the compile-process. It is as if a heavy man would jump on every keyframe of every Layer of each timeline. With tolerances they are all pushed as close to Depth 1 as possiple.

One can place more than one object on a single Layer of a FLA. In a SWF there is a one object per Layer limit, so if you have placed ten sprites on the lowest Layer of your FLA, each sprite will cover a depth (Layer) from 1 to 10 in the resulting SWF.

 
Library and Layer - names and folders up

The names of objects in the Library and Layer names as well as folders for Layers and Library objects of a FLA get lost during the compile-process. That makes it impossible to recover them from the resulting SWF. In a SWF objects are indentified by an ID and Layers by a unique depth.

 
Buttons up

In a FLA a Button defined in the Library contains all graphical information for the different Button States. Button-Action is attached on the timeline. Thus you could place the same Button 100 times on the timeline and give each Button different Actions. In the resulting SWF however all 100 Buttons would be defined in separate tags because the Button-Actions are directly written into the Button tags (rather than the Place Object tag). IMPERATOR °FLA compares all graphical information for the Buttons found in a SWF to identify all - except for Actions - identical Buttons.

 
Media up

Keeping in mind that compression for pictures, videos and sounds is a destructive process, one finds out that IMPERATOR °FLA can only recover them at the quality they were compressed during the compile-process.

A SWF does not contain any data about the original import path of a media. IMPERATOR °FLA gives you the opportunity to extract all media files (found in a SWF) to separate folders on your hard disk. It automatically writes this media extraction path into the Library so you can edit and later update them inside the Library of the created FLA.

 
Components up

Only intialized component-variables can be recovered. If you use an array-variable in any component and don't initialize it (in the library via default values or on stage with parameters) you won't find the array-variable inside the compiled SWF. Furthermore all component-variables are recovered to one of the five basic types: array, boolean, number, object and string. Within a SWF file list- and fontname- are string-variables and color- are number-variables.