ActionScript to JavaScript Compiler
actionscript3
private var foo1:* = foo2; //undefined, not 5
private var foo2:* = 5;
`
- weak references
- named closures in conditionals:
`actionscript3
if (false) function foo() {} //compilation error
`
- non-unique custom namespace identifiers:
`actionscript3
public var myNamespace;
namespace myNamespace = 'foo'; //conflict
`
Install:
`bash
npm install @johnbrandle/as3-js
`
Basic Usage:
##### Browser
`actionscript3
/ c:/projects/hello/source/com/foo/Hello.as /
package com.foo
{
public class Hello
{
public function say():String
{
return document.getElementById('hello_world').innerHTML;
}
}
}
`
`javascript
/ node compilation script /
const as3_js = require('@johnbrandle/as3-js');
let props =
{
srcDir:'c:/projects/hello/source', //where *.as files are located
mainFile:'/com/foo/Hello.as', //main class file relative location to srcDir
expose:'hello', //what variable name to set main class instance to
platform:'browser' //environment where compiled js will run, options: "node|browser|player"
}
let result = as3_js.compile(props);
fs.writeFileSync('c:/projects/hello/build/js/hello.js', result.js, 'utf8');
`
`html
hello world
`
##### Browser (Runtime)
`html
`
##### Node
`actionscript3
/ c:/projects/hello/source/com/foo/Hello.as /
package com.foo
{
public class Hello
{
public function say():String
{
const os = require('os');
return os.platform() == 'aix' ? global.Buffer.from('hello world').toString() : 'hello world';
}
}
}
`
`javascript
/ node compilation script /
const as3_js = require('@johnbrandle/as3-js');
let props =
{
srcDir:'c:/projects/hello/source', //where *.as files are located
mainFile:'/com/foo/Hello.as', //main class file relative location to srcDir
expose:'hello', //module export name
platform:'node' //environment where compiled js will run, options: "node|browser|player"
}
let result = as3_js.compile(props);
fs.writeFileSync('c:/projects/hello/tools/modules/hello/index.js', result.js, 'utf8');
`
`javascript
/ node test module script /
const hello = require('./modules/hello');
trace(hello.say()); //outputs hello world to console
``