package 
{
	import com.adobe.csawlib.photoshop.Photoshop;
	import com.adobe.photoshop.*;
	
	public class ApacheFXGPhotoshop
	{
		public static function run():void 
		{
			var app:Application = Photoshop.app;
			
			//your Photoshop code here
			
		}
	}
}