My previous post is about my first step into ActionScript 3 (AS3) and in my case: trail and error is the best way to learn stuff.
But it takes some time to find out and sometimes it’s nice to have some help.
I found some help to fix this in the future : Patrick Mineault at 5 1/2 blog has created a AS2 to AS3 converter which you can test here and download here.
There is a web form to paste your code into and it will return your converted AS3 code (check it here).
There is also an command line exe in the zip file
I’m not very good at command line, so for your (and mine) convenience I will explain how to get the exe to work with a .BAT file (I work on a PC so the example only works on PC).
Download the zip file and extract it somewhere on your computer. In my case C:\tmp\convert
I’ve created to folders in the convert folder
C:\tmp\convert\input
C:\tmp\convert\output
and in the input folder I copied all the classes I’ve ever written.
Now create a file with a .BAT extension (in my case convert.bat
) and it doesn’t matter where you put it, but I put it next to the convertas2as3.exe
in C:\tmp\convert
folder.
Open the file you just created and paste this in there:
pause
C:\tmp\convert\convertas2as3.exe -input "C:\tmp\convert\input" -output "C:\tmp\convert\output"
or adjust the path to the files you want to convert
save the file and open the .BAT file (in my case convert.bat
) and all your classes you ever have written are converted to AS3…
Well as good as it get’s: it’s not 100 percent converted to AS3 but it helps you with most of your code, and helps you on your way to find the correct code.
example
take the code I translated in the previous post but now in a class file:
class nl.matthijskamstra.config.ConfigFile { /** * Constructor * To access and manipulate information about the boundaries of a SWF file. */ public function ConfigFile () { // trace ("set flash to 'browser'-mode"); _root._quality = "BEST"; Stage.scaleMode = "noScale"; Stage.showMenu = false; Stage.align = "TL"; } /** * static function config.... same as above * * @usage nl.matthijskamstra.config.ConfigFile.config (); */ static function config () : Void { var temp = new nl.matthijskamstra.config.ConfigFile (); } }
and put it through the AS2 to AS3 online converter will become:
package { class nl.matthijskamstra.config.ConfigFile import flash.ui.ContextMenu; import flash.display.Stage; { /** * Constructor * To access and manipulate information about the boundaries of a SWF file. */ public function ConfigFile () { // trace ("set flash to 'browser'-mode"); _root._quality = "BEST"; Stage.scaleMode = "noScale"; Stage.showDefaultContextMenu = false; stage.align = "TL"; } /** * static function config.... same as above * * @usage nl.matthijskamstra.config.ConfigFile.config (); */ static public function config () : void { var temp = new nl.matthijskamstra.config.ConfigFile (); } } }
this will not work without errors but will help you convert your AS2 code to AS3
package nl.matthijskamstra.config { import flash.display.MovieClip; import flash.display.Stage; import flash.display.StageQuality; public class ConfigFile extends MovieClip { /** * Constructor * To access and manipulate information about the boundaries of a SWF file. */ public function ConfigFile () { trace ('ConfigFile ') stage.quality = StageQuality.BEST; stage.scaleMode = "noScale"; stage.showDefaultContextMenu = false; stage.align = "TL"; } /** * static function config.... same as above * * @usage nl.matthijskamstra.config.ConfigFile.config (); */ static public function config () : void { var temp = new nl.matthijskamstra.config.ConfigFile (); } } }
The config class that works!
package nl.matthijskamstra.config { import flash.display.MovieClip; import flash.display.StageQuality; public class ConfigFile extends MovieClip { // Constants: public static var CLASS_REF = nl.matthijskamstra.config.ConfigFile; public static var CLASS_NAME : String = "ConfigFile"; public static var LINKAGE_ID : String = "nl.matthijskamstra.config.ConfigFile"; /** * Constructor * * @usage import nl.matthijskamstra.config.ConfigFile; // import * var __ConfigFile__ : ConfigFile = new ConfigFile ( this ); * @param $target_mc a reference to a movie clip or object */ public function ConfigFile( $target_mc:MovieClip = null ) { // trace ( '+ ' + LINKAGE_ID + ' class instantiated'); $target_mc.stage.quality = StageQuality.BEST; $target_mc.stage.scaleMode = "noScale"; $target_mc.stage.showDefaultContextMenu = false; $target_mc.stage.align = "TL"; } /** * static function config.... same as above * * @usage nl.matthijskamstra.config.ConfigFile.config(this); * ConfigFile.config (this); * @param $target_mc a reference to a movie clip or object */ static public function config ($target_mc:MovieClip ) : void { var __config = new nl.matthijskamstra.config.ConfigFile ($target_mc); } } // end class } // end package
I’m sorry for adding to the confusion which happens when you learn ActionScript 3!
The Stage class is a difficult change from AS2 to AS3, when I have some time I will explain.