Skip to content
mkleine edited this page Dec 23, 2011 · 7 revisions

Welcome to the jangaroo-libs wiki!

Jangaroo comes with a set of libraries that

  • provide ActionScript APIs for existing browser-APIs or third-party JavaScript frameworks or
  • re-implement ActionScript 3 APIs like Flash 9 to run in the browser.

jangaroo-browser

Browser DOM and BOM (Browser Object Model) APIs. We have moved the AS3 counterparts of top-level JavaScript classes into package js to avoid ambiguities in case of name clashes (prominent example: flash.events.Event versus js.Event). The entry point is the global variable window of type js.Window. Note that other global variables available in the browser, like e.g. document, must be accessed using the window variable (window.document), or you will get a compiler error.

xmlhttprequest

This cross-browser JavaScript Ajax API applies many workarounds to allow consistent usage of XMLHttpRequest. The XMLHttpRequest API is contained in jangaroo-browser, but if you use it without the xmlhttprequest library, your code will not work cross-browser. Alternatively, you can use a framework like Ext JS (see below) and use their Ajax API.

jooflash

jooflash provides the full Flash 10 API and re-implements a relevant subset. There are still many unimplemented methods that throw Error("not implemented"). However, several Flash demos and games already run in the browser without a FlashPlayer plugin, using the jooflash library. Almost no changes in the AS3 application code are necessary, only all Flash runtime classes the application relies on have to be implemented. You are encouraged to help re-implementing the Flash runtime! Or, send feature inquiries to frank_AT_jangaroo.net.

jooflexframework

This is a really small fraction of Flex, implementing exactly the part of Flex API used by joounit (see below).

In parallel, we are experimenting with compiling the whole open source part of Flex 4 framework, but there are still some obstacles to be removed.

joounit

FlexUnit 0.9, ported to Jangaroo (very few changes) plus a text XML runner to write the result as XML into the browser document.

The Jangaroo Maven build process supports running unit tests using phantomjs or selenium. See the jangaroo-tools wiki for more details on the maven test integration or PhantomJS JooUnit Integration for details on our phantomjs/joounit integration.

Ext JS

ext-js

A Jangaroo Maven packaging of original Ext JS 3.2.2. This is needed so that all needed resources (JavaScript files, CSS, PNGs) are copied to a Jangaroo Ext AS Web application via Jangaroo's Maven build process.

ext-as

An ActionScript 3 (AS3) API for Ext JS 3.x. Using this API and the original Ext JS framework (see above), you can write Ext JS rich internet application using the advantages of ActionScript 3 over JavaScript.

In Ext AS, AS3 is used instead of JavaScript, and XML is used instead of JSON component specifications. Jangaroo comes with a Maven plugin ext-xml-maven-plugin, a compiler that takes a special XML dialect called EXML (defined through an extensible XML Schema) and translates it into Ext AS containing an Ext JS JSON component specification. The advantage of XML over JSON is that XML can be typed, and thus be much better supported by tools. You can validate EXML (and this validates more than pure syntax!) and ask your IDE for element or attribute completion and documentation lookup. The EXML Schema contains the full Ext JS component documentation.

ext-core

A Jangaroo Maven packaging of original Ext Core 3.0.

If you just use the subset of Ext AS supported by Ext Core, it suffices to add a dependency on this library.

ckeditor

A Jangaroo Maven packaging of original CKEditor 3.4.