I'm not using the Flex libraries or anything from Flash. I'm developing a pure AS3 project in Flexbuilder which I would like to deploy as an AIR application.
What are my options? What's easiest? I'm having trouble finding a straight answer here.
I'm not using the Flex libraries or anything from Flash. I'm developing a pure AS3 project in Flexbuilder which I would like to deploy as an AIR application.
What are my options? What's easiest? I'm having trouble finding a straight answer here.
You can use either Flash or Flex to create your AIR app. Which is easier depends on the nature of your app. If your app is fairly complete as it is and won't change much going forward and you are just concerned with turning it into an AIR app, you can use either.
I do like the availability of a command-line compiler (i.e. mxmlc from Flex) as I can use automate the build process more easily. With Flash, you will need the IDE to compile the app. Also, once you get into making it an AIR app, it's highly likely that you might run into things that can be done much faster in Flex than in Flash due to the framework code that you can leverage. So Flex is a better way to go overall.
To do this in FlexBuilder you simply create a Flex Project AIR application in Flexbuilder like you would normally, then in the 3rd step where you define extra source and library paths, change the suffix your .mxml file to .as, ie so Main.mxml becomes Main.as.
Another obvious gotcha for Mac development is the pesky ADL files not quitting when you close the air app...I use the OSX Activity Monitor to manual force quit the adl file after closing my air app.
Here is a more complete answer...
As unknown stated above:
"To do this in FlexBuilder you simply create a Flex Project AIR application in Flexbuilder like you would normally, then in the 3rd step where you define extra source and library paths, change the suffix your .mxml file to .as, ie so Main.mxml becomes Main.as."
That runs, but shows nothing... for some reason this doesn't automatically instantiate a native window. From Laurentie Adobe Bug Systems:
"Of course after the project is created i add code to create the windows and stuff, but that wasn't the issue, so i involuntarily ommited that. :)
try something like:
var options:NativeWindowInitOptions = new NativeWindowInitOptions(); //options.systemChrome = "none"; //options.transparent = true; var mainWindow:NativeWindow = new NativeWindow(options); mainWindow.activate();
and you add content to that window throught mainWindow.stage. :) hope that helps"
All of that being said this isn't really an ideal solution. But there it is for those of you who want to experiment.
That runs, but shows nothing... for some reason this doesn't automatically instantiate a native window.
rather than creating a new window that doesn't represent your main application, simply call stage.nativeWindow.activate();
in your main application class.