Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

c) (in frameworks/projects/Core) src/main/resources/compile-as-config.xml - Settings used to compile the AS to SWF byte code and include the cross-compiled JS  from the "JS" SWC.

 

The Ant script performs the 3 steps of the order of operation, but also copies the JS files to frameworks/js/FlexJS/generated-sources.  When an application is being compiled and JS files are finally need to be linked into the cross-compiled output, the FalconJX compiler looks there before it looks in the SWC for a JS file that matches an AS class.  This allows developers to monkey-patch and quickly try changes to the JS without having to re-build the entire SWC.

In More Detail

When compiling the Flash-specific SWCWhen compiling in step 1 and 2, the COMPILE::SWF conditional compilation flag is set to false and COMPILE:JS is true.  Only on the last step 3 is COMPILE When cross-compiling AS to JS,  COMPILE::SWF set to true and COMPILE::JS set to false. 

In More Detail
The "SWF" SWC and "JS" SWC have different library dependencies.  At the "bottom" is the runtime SWC.  The "SWF" SWC has an external library path that includes playerglobal.swc.  The "JS" SWC has an external library path that includes js/libs/js.swc.  Playerglobal.swc includes APIs for Flash like Sprite, the js.swc includes APIs for JS like HTMLElement.
The "JS" SWC has a library path that references other "JS" SWCs, like CoreJS.swc, and the "SWF" SWC has a library path that references other "SWF" SWCs like Core.swc.
Base Classes and other classes are then written against Flash APIs for SWF or JS APIs for JS.  UIBase, for instance, extends Sprite for Flash but extends Object and wraps an HTMLElement for JS.  Conditional Compilation is used where needed.