A couple quick FDT tips

I have been using FDT for a couple of years now and I love it, but it wasn’t until recently that I started to really use it’s full potential. The biggest reason is that we still use the Flash IDE a whole lot and .fla’s are the main source of our project. Previous a lot of our projects would be 1 maybe 2 fla files and all the code would get compiled into them. We would still use FDT for all of our coding but would lose out on using the debugger which is really an amazing time saver.

So now after building the Fuel ANT Tasks, and creating a new workflow between designers and developers, we have now embracing all that is FDT. We have come up with a great solution on how to remove all of the code from our FLA’s and have it get compiled into one swf. The swf can be compiled from Flash or FDT. We create a blank fla with only a document class as our entry point, this way anybody with the IDE can compile our project. Now there are many different ways to accomplish this, so I am not going to go into them, but may post about it in the future – we are still refining the process.

The thing to take away from it is that when we are doing only code changes we can compile the code and even fla’s from FDT and have it run through the debugger. Now in order to get this running a ran into a few problems and wanted to share the solution, because it has stumped a lot of people.

Launching in External SWF Viewer
One of the options to launch your application is the External SWF viewer. This is a basic java application that displays a html page with your swf in it. The html page is generated in your output directory when you compile and then deleted when it’s complete. Because the swf is running in a local html file chances are you are going to run into security errors if you are doing any network calls, or loading of remote assets. The easiest way to get around this is to add your workspace directory to the Flash Global Security Settings panel. The path to my workspace looks something like /Users/julian/workspace, so it’s tempting to add that as a path. But because the way that the External SWF viewer is loading the swf you need to add the path like so file:////Users/julian/workspace. This will now make that directory and all it’s sub directories locally trusted locations and will not throw security errors. Be sure to check out the Run/Debug preferences in Eclipse as well for some useful settings that you may want to adjust.

Flash Player 10
I was trying to compile a project to Flash Player 10 the other day and kept getting a bunch of errors. I had added the Flash Player 10 playergloabal.swc and my swf was running in Flash Player 10 so I thought that would be enough. But it was actually compiling to Flash Player 9 still. So after much digging I found out that you need to add the following arguments to the flex sdk during compiling.

–target-player=10.0.0

So now after a couple of weeks of trial and error on getting the whole workflow set up, I think we have a really good system in place and am looking forward to starting a new project to use it from start to finish. It took me a while to get used to the debugger and really understand it’s power, but once you do it’s an amazing time saver. No more traces just breakpoints.

Continue reading » · Rating: · Written on: 11-04-09 · 6 Comments »

Fuel ANT Tasks

At Fuel Industries our projects always start with a FLA, but we use FDT for all of our coding. We wanted to have a way that we could publish our projects from FDT as well as run daily automatic builds. This is easy when working with Flex because Flex has a command line compiler, but Flash doesn’t. So we wrote custom ANT tasks in Java that will allow us to publish fla’s in multiple ways.

Here are a few examples of some of the things you can do.

First you can simply compile fla’s

<target name="fla_publish">
	<flash>
		<fla file="${src}/redsquare.fla" build="publish"/>
		<fla file="${src}/bluesquare.fla" build="export" swf="${src}/bluesquare.swf"/>
		<fla file="${src}/greensquare.fla" build="test"/>
	</flash>
</target>

The fla task can take multiple different types of values for the build parameter – publish, test, and export.
publish will simply publish the file at the current settings set for the fla.
test will compile and run the swf in the Flash IDE. This is like hitting cmd-enter/ctrl-enter
export will export the swf. In order to use this mode you must specify a output swf file.

You can also publish and test Flash CS3 Flp files

<target name="flp_publish">
	<flash>
	     <flp file="${src}/fuelanttask.flp" build="publish"/>
	</flash>
</target>

If set the build mode to “test” it will look for the flp project default file and compile that project last and test the default file.
The nice thing about using the flp task is that if one of your files has a compile error, it will stop the build process and alert you of the error. This is different then the IDE as it just keeps compile the project and you won’t see if one of your files compiled incorrectly.

We have also created a task called buildnumbercommand. This task gets the local SVN revision number and inserts it into a BuildNumber.as file. This way we have the build number accessible in ActionScript and we are able to display it automatically in our files. For instance we place ours in the right click menu so our clients can see what version of the build they are looking at.

<target name="version">
	<buildnumbercommand path="${src}" />
</target>

The path parameter is the directory in which the BuildNumber.as file is located. Below is an example of BuildNumber.as

package
{
	public class BuildNumber 
	{
		public static const BUILD_NUMBER : String = "1";
	}
}

Here are some of the other parameters for the Tasks

flash task

path – This is needed on Windows only. This is the path to your Flash IDE executable and is defaulted to the default install location for CS3 and CS4. C:\Program Files\Adobe\Adobe Flash CS3\Flash.exe and C:\Program Files\Adobe\Adobe Flash CS4\Flash.exe. If you have the Flash IDE installed in these locations you can omit this parameter.

version – accepts either “CS3″ or “CS4″. The default is “CS3″. This is used to determine which IDE to compile your files in. “CS3″ is the default and can be omitted if you want to use CS3.

deleteaso – true | false will delete your aso files before compiling any files. The default is false.

closeDocs – true | false will close your fla after it’s compiled. The default is false. This is ignored when compiling a flp project and will always close it afterwards.

quit – true | false will close the Flash IDE after all the files have been compiled.

verbose – true | false has some more output messages during compilation.

fla task

file – the path to your fla file

build – valid values are “export”, “publish”, “test”. The default is “publish”.
publish will simply publish the file at the current settings set for the fla.
test will compile and run the swf in the Flash IDE. This is like hitting cmd-enter/ctrl-enter
export will export the swf. In order to use this mode you must specify a output swf file.

swf – the file path to a swf to be compiled. This is only needed when the build parameter is set to “export” and will be ignored otherwise.

flp task

file – the path to your flp file

build – valid values are “export”, “publish”, “test”. The default is “publish”.
If set the build mode to “test” it will look for the flp project default file and compile that project last and test the default file.

UPDATE : the ANT tasks have been put up on Google code. The source, examples, documentation, and the compiled jar can be found there

http://code.google.com/p/fuelanttasks/

This is a video of me showing how to use them at Flash On The Beach during the speaker throwdown

FOTB09 – Jam Throwdown – Julian Dolce from John Davey on Vimeo.

Continue reading » · Rating: · Written on: 09-23-09 · 23 Comments »