Categories
AS3 Flash

AS3 – take one step at a time: step 1a

I’ve made a mistake, the code I original wrote doesn’t work (I’m glad nobody noticed it 😉 ). You can find the correct class here

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.