as3 js
1.0.0
AS3-JS ist ein ActionScript 3 zum JavaScript-Compiler mit Unterstützung von Browser und Node.js.
private var foo1 :* = foo2 ; //undefined, not 5
private var foo2 :* = 5 ; if ( false ) function foo() {} //compilation error public var myNamespace ;
namespace myNamespace = 'foo' ; //conflictnpm install @johnbrandle/as3-js /* c:/projects/hello/source/com/foo/Hello.as */
package com.foo
{
public class Hello
{
public function say (): String
{
return document . getElementById( 'hello_world' ) . innerHTML ;
}
}
} /* 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' ) ; <!-- c:/projects/hello/build/index.html -->
< div id =" hello_world " > hello world </ div >
< script src =" js/hello.js " > </ script >
< script >
trace ( hello . say ( ) ) ; //outputs hello world to console
</ script > < script src =" node_modules/@johnbrandle/as3-js/_excluded/_generated/as3_js.browser.3.js " > </ script >
< script >
let request = new XMLHttpRequest ( ) ;
request . open ( 'GET' , 'node_modules/@johnbrandle/as3-js/_excluded/_generated/builtin.browser.swc' , false ) ; //recommend changing this to asynch
request . send ( null ) ;
let constructs = as3_js . getSwcUtil ( ) . parseSWCString ( request . responseText ) ; //recommend caching result
let script = 'trace("hello world");' ;
let code = 'package { public function actionScript(scope:Object, args:*):* { return (function() {' + script + 'nn}).apply(scope, args || []); } }' ;
let construct = as3_js . getAnalyzer ( ) . analyze ( as3_js . getParser ( ) . parse ( as3_js . getLexer ( ) . lex ( code ) . tokens ) , constructs , 3 , true , true ) ;
let result = as3_js . getTranslator ( ) . translate ( construct , constructs , true , false , false ) ;
let value = '(function() { var $window = this; var window = $window.parent || $window; var document = window.document; var $es4 = window.$es4 || (window.$es4 = {}); var _ = window._; var $ = window.$;nn' + result + 'nn})();' ;
eval ( value ) ; //outputs hello world to console
</ script > /* 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' ;
}
}
} /* 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' ) ; /* node test module script */
const hello = require ( './modules/hello' ) ;
trace ( hello . say ( ) ) ; //outputs hello world to consoleSiehe Dokumente