Versions Compared

Key

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

...

1) Cross-compile the AS to JS

2) (Optional) Create an Externs a "JS" SWC.  An Externs  A "JS" SWC is needed so that APIs only available in the JS runtime are available to SWCs that depend on the SWC you are creating.

...

There doesn't appear to be a way to easily do the three steps from a single Flex Library project in Adobe Flash Builder, unless you also add an Ant Builder to the project.  Some folks so we use two Flex Library projects instead.

...

The FlexJS framework uses Ant scripts to create the SWCSWCs.  In each folder in frameworks/projects, you should find  For each SWC, like Core, there should be:

a) build.xml - the Ant script (in frameworks/projects/Core, and another one in frameworks/js/FlexJS/projects/Core)

b) (in frameworks/js/FlexJS/projects/Core) src/main/resources/compile-asjsjs-config.xml  - Settings used to cross-compile AS to JS and also to create the Externs "JS" SWC

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

...

The Ant script performs the 3 steps of the order of operation, but also copies the JS files to frameworks/js/FlexJS/libsgenerated-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.

When compiling in step 1 and 2, the COMPILE::AS3 SWF conditional compilation flag is set to false and COMPILE:JS is true.  Only on the last step 3 is COMPILE::AS3 SWF set to true and COMPILE::JS set to false.

...