Skip to content
makc edited this page May 27, 2013 · 2 revisions

Is it necessary to use your Code Orchestra editor to make projects with livecoding?

Nope, there are no limitations for using IDE. It's possible to code your project in any word processor. You just need to specify compilation settings and sources locations (copy the settings from your IDE). Compilation and alterations delivery to the Flash/Air application starts as you save the as/mxml file.

How is livecoding in CO2 related to COLT?

Initially we made livecoding for Flash an exclusive feature of Code Orchestra IDE 2.0 (CO2) editor. Later we decided to bring the functionality of livecoding out of there and make it available for any IDE. Livecoding implementation in COLT is different from CO2 IDE. We had to modify COLT's compiler, while in the editor common code generation was used. Implementation through a compiler let us somewhat speed up the incremental phase.

What OS' does COLT work with?

Windows, MAC, Linux.

How are alterations delivered into the app?

A specific transformation of classes occurs when the application is being assembled. The method bodies and code are placed in separate classes stored in live methods registry. Method bodies are not called within the classes, instead the call of all methods is redirected to these classes as a whole. Therefore it's possible to load another implementation of methods and replace their code in the registry. If a method body is altered, or a new method is added, a specific package of alterations is created as a SWF file placed into the “Livecoding” folder next to the main SWF. This kind of files contains a class with a method, and also those new classes that haven't been included into the initial Flash app. After a package like this has been assembled (the file has been saved on disk), alteration parameters are delivered through a socket, the app loads the SWF through URLLoader and then downloads the classes. An old class of methods in the registry is replaced with a fresh one. All subscribers receive a message  that the implementation of the class has been updated.

How do I forbid livecoding in particular classes and methods?

In some cases (maybe we've missed something and you got an error after assembling through COLT) it's necessary to forbid transformation of methods and classes. We provide several ways to do it. First of all, you can exclude entire packages in COLT's settings. Like determining a “com.mypackage.*” mask for the package and then leaving it out. Secondly, you can use the [LiveCodeDisable] metadata and mark the classes or separate methods you'd like to block from livecoding. What is more, there's an option (in livecoding settings) of “only livecoding classes with  [Live] metadata” and turning livecoding on just in particular classes.

Is Falcon supported?

COLT uses proven MXMLC that is applied to all Flash projects in production. We're to add Falcon support in version 2.0 when ASC 2.0 becomes stable and gets released. In order to use the new capabilities of ASC2 you'll have to build specific SWCs compiled with ASC2, and add them to dependencies of COLT's compiler (in case SWC uses domain memory, you will need to patch it). New features will be available in livecoding mode then.

Clone this wiki locally