=========== Config file =========== as3hx looks for, or creates, a config file in your home directory called ".as3hx_config.xml". You can also create one in the directory you are running as3hx from, which will override the home file. indentChars: (String=\t) The characters used to indent each line newlineChars: (String=\n) The characters used to terminate each line bracesOnNewline: (Bool=true) If set, opening braces will be put on a new line uintToInt: (Bool=false) If set, all uint in flash will be translated to Int vectorToArray: (Bool=false) If set, all Vectors will be changed to Arrays guessCasts: (Bool=true) Cast guessing should likely be on, as it will change any MyClass(obj) to a cast(obj, MyClass) call. functionToDynamic: (Bool=false) If set, Function will be translated to Dynamic getterMethods: (String=get%I) Can be set to change the names of getters. %I : field name with first letter capitalized %i : field name unchanged (ex. get_%i) setterMethods: (String=set%I) Can be set to change the names of setters getterSetterStyle: (String="haxe") "haxe": a field will be created with haxe style setters and getters. (var m(getM,setM)) "flash": only native getters and setters will be created using @:getter and @:setter "combined": both will be generated For the "combined" getterSetterStyle, code output will look similar to: #if flash @:getter(target) function get_target() : {} { return proxy; } #else override function get_target() : Dynamic { return proxy; } #end ================= Current failures: ================= ================================ 'delete' keyword: ================================ In actionscript, the delete keyword will cause an intentional failure in the generated .hx file. Take a close look at the object being deleted. 1) if it is a local variable, replace 'delete varname' with 'varname = null' 2) if it is a class member variable, remove the delete entirely 3) it it is an E4X (FastXML), well, hmmm... still working on that one. Senocular did a little writeup on 'delete' that might make it more clear http://www.kirupa.com/forum/showthread.php?223798-ActionScript-3-Tip-of-the-Day/page3 ================================ E4X: ================================ E4X is currently partly done. This will fail in some cases, just examine source and output carefully. ================================ For Initializations: ================================ The output of if(true) { for(var i:uint = 0; i < 7; i++) val += "0"; } else { for(i = 0; i < 8; i++) val += "0"; } is if(true) { var i : UInt = 0; while(i < 7) { val += "0"; i++; } } else { i = 0; while(i < 8) { val += "0"; i++; } } As you can see, the scope of "i" in flash is not the same as in haxe, so the "else" section will produce Unknown identifier : i. The solution is to move the "var i : UInt = 0;" outside of the blocks in the generated code. This can not be avoided by always creating the i variable, as the code for(var i:uint = 0; i < 7; i++) val += "0"; for(i = 0; i < 8; i++) val += "0"; would then produce a double initialization of i, also causing a compiler error. var i : UInt = 0; while(i < 7) { val += "0"; i++; } var i = 0; while(i < 8) { val += "0"; i++; }