Coming soon – Facebook Application Development, Learn by Video

My second video2brain course is due to be released soon!

This time I’ve put together a course to take you through the steps involved in building Facebook Applications – in both PHP and JavaScript and including examples of integrating Flash content for those of you who are itching to create the next Farmville ;-)

The course is the fruit of more than 3 years’ worth of Facebook Application development experience and a fun week’s stay in Graz last month and is packed full of example code and tips for everybody who wants to get into Facebook App development!

The course will, as you may have guessed from the box shot, be available in boxed DVD form together with an accompanying booklet packed with extra tips for Flash Application development for Facebook – an area that I’ve been heavily involved in from the beginnings of the Facebook Platform for Developers. One chapter in the booklet was written by my colleague and partner in crime at Substance, Neil Young, and covers more PHP and specifically AMFPHP Gateway implementation for Facebook Applications.

Drop me a line with your email address if you’d like a heads-up when the course is available or watch this space for news!

 

tags: , , , , ,

FFK11 – beyond tellerrand is this week!

I’ve been so busy lately that I’ve had no time to write anything here – but I can’t let this exciting event go without mention:

Yes: It’s already time for FFK11 – beyond tellerrand. I’m checked in for my flight tomorrow and all set for a week of learning, meeting up with friends old and new and having fun in Cologne!

The second conference of the year from Marc Thiele and Sascha Wolter, after the excellent one-day “beyond tellerrand – mobile” back in February, promises to be an exciting mix of Flash and other technologies in addition to a good healthy dash of design-related themes.

I’m attending two workshops – “Natural User Interface Design” with Prof. Wolfgang Henseler on Tuesday and “How-To Multi Touch” with Meiko Schimmelpfennig on Friday – both of which sound like they’re going to be not only really topical for me but also very interesting. I’ll be putting what I learn to use straight away and look forward to reporting back about programming for the Microsoft Surface platform after Friday’s workshop.

The conference part itself is going to be a nice varied affair. Here’s what I have on my session list at present:

Wednesday:

The Dawn of a New Era: Flash Builder and Flex SDK 4.5 – Deepa Subramaniam: Because it’s always good to be up-to-date with the old platform

Improved Technology – Joa Ebert: Because I live in the hope that I will one day understand everything Joa says ;-)

Integrating Flash and HTML5 – Mike Chambers: Because this is an important theme and I’m keen to see if some of the hurdles associated with the plethora of video formats are being addressed.

P2P on the local network – Peter Elst: Because I know he’s been playing with some good stuff here and my friend Peter never disappoints ;-)

Beyond GUI – Wolfgang Henseler: To see more after the workshop…

Thursday:

Into the molehill – An inside view – Malte Beyer: Because I’ve been too busy lately to even look at molehill…

The game is on! – Michel Wacker: To see what it is he’s been tweeting about lately! :-)

Don’t Hate the Player – Lee Brimelow: Because there’s bound to be something interesting going on here…

Keeping in Real – David Lenaerts: Because I’m a firm believer in being inspired by nature and this looks like it’ll be an interesting session.

Exploring the Kinect OR Walking on Robotlegs: Because I simply can’t decide between fun and finally learning what the fuss is about with Robotlegs.

Fillings for Rectangles – Brendan Dawes: Because I do like his work. Basta.

It’s going to be a fun week and I’m looking forward to it. If you’re going to be there and see me, come and say hi :-)

 

tags: , , , ,

Get Mommafied with Big Momma’s House 3

After a busy few weeks working with the lovely people at Substance, I’ve managed to find time to write about the first of two projects I’ve been working on: Big Momma’s House 3 Get Mommafied!

The project involved the build and implementation of a combined microsite/Facebook App which allows the user to choose a photo of themselves from their hard disk or Facebook albums OR to take a snapshot with their webcam and then to proceed and give themselves the full Martin Lawrence-style Big Momma treatment – to Get Mommafied! They can even choose a wig or dress to suit their style ;-)

The result can be posted to their Facebook Wall, Twitter (via Twitpic), downloaded or copied as a HTML embed link for use anywhere they wish.

Substance’s Craig Beswetherick (@GrindheadGames on Twitter) was responsible for the nasty pixel manipulating stuff and yours truly wrapped it all up with the rest of the UI, Facebook goodness and functionality. The design comes from Substance’s in-house artistic guy Ewan Brock (@letsbrock) and the final site/App has been rolled out in numerous countries including the UK, Russia, Mexico and throughout Europe – resulting in some interesting challenges with sizing on buttons and text fields. Naturally, localisation was carried out by using XML for configuration and copy.

The App was built using FDT4, assets in Flash and based on PureMVC for the simple reason that I have a nice little Facebook App template built up using this framework. PureMVC is by no means “pure” MVC but having a pre-built “template” which uses such a simple-to-use framework is a definite benefit when approaching new projects.

So. Go ahead and Get Mommafied! You may be surprised at how good you look with an extra 50 kilos in a wig and a dress!

 

tags: , ,

beyond tellerrand – the new mobile conference!

I’m excited that I’ll soon be attending “beyond tellerrand” – the new mobile conference which will take place in February, in Cologne!

It’s exciting enough that I’ll see a few familiar faces (such as Marc Thiele, one of the conference organisers), meet co-organiser Sascha Wolter, whom I only know through his excellent DVD Training Courses from video2brain, and get the chance to speak some German again. What’s more exciting is that this conference sets a milestone in the history of German-based technical conferences. After the popular Flash Forum (FFK) conference has been running for for 10 years, Marc & Sascha’s new mobile conference is set to be very exciting.

I wrote to Marc and asked him what the thinking was behind organising this conference now – and their choice of name, which itself hints at the wider thinking behind the idea:

Marc:

The market for mobile devices and software for these is growing rapidly. There’s iOS, Android, Window Phone 7, QNX and even more on the horizon. What platforms should you place your bets on? What are the similarities and differences among the vendors?

beyond tellerand – mobile seeks to answer these and many more questions regarding this emerging market. This will be our first conference dedicated to mobile application development. The event will present more than the platforms and how to develop for them. We will also focus on how to meet the new design and technical challenges that comes with new formats, as well as inspire you. If you don’t want to miss the mobile train, this is the event to attend!

Why now, in 2001?

2011 is just a matter of fact as now all this stuff is going on ;)

Well, you can’t argue with either of those points!

As to the name. The name hints at a far-reaching philosophy… “beyond tellerrand” is a cool name – it hints at taking the discussions about mobile to another level – beyond the “tellerrand” (“edge of the plate” would be a rough English translation). Is this the thinking behind the name?

Marc:

You are more or less right. But we take it a step further than just for the mobile event. We called the event “beyond tellerrand – mobile” where “beyond tellerrand” is the name of the event series and “mobile” the topic. FFK11 this year has the subtitle “beyond tellerrand”. which brings the connection: Over the last years Sascha and I always have been talking about looking over the edge (“Über den Tellerrand hinaus schauen”). With this first “beyond tellerrand” event we start bringing our idea to reality.

Well. It sounds like there are some more ideas lurking there that we’ll be hearing about over time. It’s exciting – and I’m looking forward to being in Cologne and enjoying the conference and maybe one or two glasses of Kölsch! :-)

Zum Wohl!!

 

Flash on the Beach 2010 – are you ready?

One week to go!

While others have already posted their choices of sessions and thoughts on the up-coming feast of creative flashness and intense social frenzy that is FOTB, I decided it was time to fix my choice of sessions.

Last year’s FOTB was exciting, with a mix of technical and inspirational sessions – some useful for helping me to further my skills, others excellent for the ideas and thought-provoking material they presented. Some new speakers and some old favourites made it a great conference.

I’ve shifted my focus technically in the last year: While still having a very strong emphasis on, and working daily with, Flash/FLEX and AS3, I’ve been working a lot on iPhone/iPad development and even dipping my toes a little into the HTML5/CSS3 waters to test the temperature. That posed interesting questions for me while choosing which sessions to attend.

So, after much deliberation and taking into account some recent schedule changes, here’s what I’m thinking of attending when the party starts a week tomorrow:

Sunday 26 September
- will be a busy and fun day for me as I’m attending Julian Dolce’s “Mobile Development with Flash” Workshop – and wondering if he’s had to rework his content following Apple’s change of policy re. 3rd-party developer tools!

Monday 27 September – the first day of sessions!
Conrad Winchester, Robotlegs and Signals – a match made in heaven? Quite simply put: stuff I think it’d be useful to know. I’ve worked with PureMVC, use my own basic MVC patterns and can’t miss this opportunity to learn more…

Andre Michelle, Pulsatile Crackle – physics and sound combined, ToneMatrix and all the rest… DJ Andre is in the house! ;-)

Lee Brimelow – Developing for the Mobile Web – given my shift in focus and the ever-increasing interest in this area, another must see!

The afternoon session on Monday has me torn and I’ll have to decide on the day (partly depending upon what Lee covers in his morning session):

Either Hoss Gifford – Things I have learned OR Lee Brimelow – Multi-screen Web Dev with Dreamweaver CS5 Lee’s session is hands-on, while Hoss’ sounds, simply put, pretty awesome…

Tuesday 28 September

Tuesday kicks off with the Elevator Pitches and it’ll be fun to watch this frantic collection of highly-charged and fast-paced mini-presentations! After being on the stage with my Elevator Pitch last year, I’m excited to see what this year’s speakers have to thrill and entertain with! I have one or two friends giving pitches this year so this is going to be fun ;-) If you’ve even contemplated sleeping in and missing this then SHAME ON YOU! This session is going to be awesome!

Jon Howard – Where in the World? Intercontinental Ballistic Flash – if only to see what Jon’s really going to talk about!

More hands-on: Mike Jones, Flash components in Flex apps – keeping up-to-date ;-)

Seb Lee-Delisle, What the Flux? – Seb’s been on a voyage of discovery and it seems that there are some parallels with where I’ve been during the last year. It’ll be interesting to hear his thoughts…

Julian Vallée, Storytelling, Playfullness and Experimentation – something we should all do more and what I’m hoping will be one of those enjoyable inspirational sessions!

Wednesday 29 September

After the frantic (although slightly less so than the Elevator Pitches) 6 of the Best session, it’s on to fellow 2009 Elevator Pitcher Iain Lobb with Zero To Game Designer In 60 Minutes – right up my street. I’m looking forward to gaining those XP points…

Doug McCune, Data Visualisation Will Change Your Life – another theme which has been occupying my mind more and more recently, particularly in respect to physical computing, Data Visualisation is an exciting area.

Doug Winnie, Child’s Play: Live Wireframes With Flash Catalyst CS5 – I have yet to try out Flash Catalyst but this may just make me want to ;-)

The last session of the day before watching Jared Tarbell creating physical artefacts (sounds interesting too) will be the lovely Laura Jordan-Bambach, Digital Mythbusters. I thoroughly enjoyed Laura’s session last year and am very much looking forward hearing her take on the “social everything” trends within our industry.

So that’s what I’m planning. There are, as always, sessions I would love to attend but simply can’t without cloning myself. Mario, ralph and Hugh are all right there on that list – sorry guys :-( – I’m sure I’ll get a chance to buy you each a beer though and am looking forward to catching up with some familiar faces – and meeting some new ones!

See you all there!

 

ASDoc and how to actually make it work

Shock, horror! ASDoc working?!!

OK, ASDoc IS a cool thing. If, like me, you’ve spent many a happy hour trying to figure out how to make it actually work and been driven insane by it’s habit of pointing out errors in your code – or worse, errors in third-party code – and not just producing the blasted documents you wanted, then hopefully I can help just a little. With a little help from Seb Lee-Delisle and a cool little tool called Dita – it’s an AIR app!

ASDoc is delivered along with Flex Builder and is free, so why not use it to produce some nice API documentation for your latest project?

Because it’s command-line and very very fiddly?

I was determined to make it work this time (after giving up on a previous project) and surfed around for clues to get it working. I’d tried Dita on it’s own before and also tried the ASDocGUI AIR app – neither worked for me for some reason. So, google it is…

I immediately found Seb’s excellent blog post on the theme. He explains a neat little way to set up ASDoc within Flex, as an external tool. He also recommends using external SWCs instead of libraries to avoid ASDoc’s annoying tendency to document everything it finds unless you specifically exclude all classes you don’t want documented – individually :|

Now I had the issue that my project HAS used external linked libraries and I didn’t want to rework everything now that the project is final. This means that I needed to exclude several classes. That’s where, as Seb points out, Dita comes in.

Dita does not run ASDoc but allows you to create a batch file with all commands necessary to run it for your project. As I said, I couldn’t get it to work for me before, but this time I had other plans for it ;) I was going to use it simply to create that long list of classes to be excluded (in my case the Greensock TweenLite classes) and save me having to type them in manually.

Simply enter the project details and paths into Dita and include the file system path to the classes you wish to exclude, for example:

Entries in Dita for your project
Entries in Dita for your project

You’ll see that I have specified the path to the greensock libraries for the parameter exclude classes/packages (in the src/com folder).

Hit “GO” and you’ll produce a batch file as mentioned above.

Open up the batch file with an editor (notepad?) and you’ll see something like the following:


"C:\Program Files\Adobe\Flex Builder 3\sdks\3.2.0\bin\asdoc.exe" -output "C:\Documents and Settings\robert\My Documents\Flex Builder 3\Donut\docs" -source-path C:\Documents and Settings\robert\My Documents\Flex Builder 3\Donut\src -library-path -main-title "" -window-title "" -footer "" -doc-classes CAD Card CardContent CardEvent CardStack ChoiceDropdown CirclePreloader CoinStack com.greensock.core.PropTween com.greensock.core.SimpleTimeline com.greensock.core.TweenCore com.greensock.data.BevelFilterVars com.greensock.data.BlurFilterVars com.greensock.data.ColorMatrixFilterVars com.greensock.data.ColorTransformVars com.greensock.data.DropShadowFilterVars com.greensock.data.FilterVars com.greensock.data.GlowFilterVars com.greensock.data.TransformAroundCenterVars com.greensock.data.TransformAroundPointVars com.greensock.data.TweenLiteVars com.greensock.data.TweenMaxVars com.greensock.data.VarsCore com.greensock.easing.Back com.greensock.easing.Bounce com.greensock.easing.Circ com.greensock.easing.Cubic com.greensock.easing.EaseLookup com.greensock.easing.Elastic com.greensock.easing.Expo com.greensock.easing.FastEase com.greensock.easing.Linear com.greensock.easing.Quad com.greensock.easing.Quart com.greensock.easing.Quint com.greensock.easing.Sine com.greensock.easing.Strong com.greensock.events.TweenEvent com.greensock.OverwriteManager com.greensock.plugins.AutoAlphaPlugin com.greensock.plugins.BevelFilterPlugin com.greensock.plugins.BezierPlugin com.greensock.plugins.BezierThroughPlugin com.greensock.plugins.BlurFilterPlugin com.greensock.plugins.ColorMatrixFilterPlugin com.greensock.plugins.ColorTransformPlugin com.greensock.plugins.DropShadowFilterPlugin com.greensock.plugins.EndArrayPlugin com.greensock.plugins.EndVectorPlugin com.greensock.plugins.FilterPlugin com.greensock.plugins.FrameLabelPlugin com.greensock.plugins.FramePlugin com.greensock.plugins.GlowFilterPlugin com.greensock.plugins.HexColorsPlugin com.greensock.plugins.QuaternionsPlugin com.greensock.plugins.RemoveTintPlugin com.greensock.plugins.RoundPropsPlugin com.greensock.plugins.ScalePlugin com.greensock.plugins.ScrollRectPlugin com.greensock.plugins.SetActualSizePlugin com.greensock.plugins.SetSizePlugin com.greensock.plugins.ShortRotationPlugin com.greensock.plugins.SoundTransformPlugin com.greensock.plugins.TintPlugin com.greensock.plugins.TransformMatrixPlugin com.greensock.plugins.TweenPlugin com.greensock.plugins.VisiblePlugin com.greensock.plugins.VolumePlugin com.greensock.TimelineLite com.greensock.TimelineMax com.greensock.TweenAlign com.greensock.TweenLite com.greensock.TweenMax com.greensock.TweenNano com.hybrid.ui.ToolTip ConfigLoader CustomCellRenderer DependantNotice DependantNoticeChoice DependantNoticeChoice2 Diabetes DOB Donut5 DonutEvent DonutSegment DropDown EmailValidation fl.controls.ScrollBar FundValue GreyButton Halo HealthDropDowns Item Measurements MultilineCheckBox Options Overlay PostCode Pot QuestionButton Radio2 Radio3 RightPanel RightPanelEvent SegmentCheck SeriousConds Slider SliderForm StopEvent SummaryScreen SummaryScreenEvent TwoChoice TwoChoiceDeps YellowButton -exclude-dependencies
pause

I’ve no idea why the exclude classes are listed along with the actual classes in my app but at least I don’t have to type them out… Now all you need to do is to go back to Seb’s instructions and set up an external tool (Step 1) through to Step 5. Then add the -exclude-classes directive and copy and paste the nice long stream of class names into the Arguments window of the external tool dialog, resulting in something like the following:

ASDoc settings in the external tool dialog in Flex
ASDoc settings in the external tool dialog in Flex

That’s dealt with the classes to be excluded. What about external linked libraries that are needed by the compiler? Simply specify them by entering their file path as follows:


-source-path "C:\Program Files\Adobe\Adobe Flash CS4\Common\Configuration\Component Source\ActionScript 3.0\User Interface"

If you want the classes in this library excluded then don’t forget to run it through Dita again with this path in the exclude classes/packages field to get a nice list. I wanted them documented in this case as they’ve been partially sub-classed in my app (custom skinning and component extending, fun :| ).

Don’t forget then to add a custom title, footer text and browser window title:


-window-title "xxxxxx Classes Documentation"
-main-title "xxxxxx Classes Documentation"
-footer "created by me using ASDoc"

Now, back to those annoying little compilation errors that can stop you from producing nice shiny documentation. I know we shouldn’t have errors but you may be using a third-party library that has them, right? ;)

Make the compiler more tolerant by adding:


-strict=false
-warnings=false

and the compiler should happily skip those duplicate variable definitions or untyped variables (in my experience the most common things that pop up here).

Now, if you’ve followed Seb’s suggested argument parameters and used -doc-sources, make sure you don’t use -exclude-dependencies as ASDoc doesn’t like it and you’ll only get another error message.

By now you should have a whole stream of parameters listed in the Arguments section of the external tool dialog – something like this:


-strict=false
-warnings=false
-exclude-classes com.greensock.core.PropTween com.greensock.core.SimpleTimeline com.greensock.core.TweenCore com.greensock.data.BevelFilterVars com.greensock.data.BlurFilterVars com.greensock.data.ColorMatrixFilterVars com.greensock.data.ColorTransformVars com.greensock.data.DropShadowFilterVars com.greensock.data.FilterVars com.greensock.data.GlowFilterVars com.greensock.data.TransformAroundCenterVars com.greensock.data.TransformAroundPointVars com.greensock.data.TweenLiteVars com.greensock.data.TweenMaxVars com.greensock.data.VarsCore com.greensock.easing.Back com.greensock.easing.Bounce com.greensock.easing.Circ com.greensock.easing.Cubic com.greensock.easing.EaseLookup com.greensock.easing.Elastic com.greensock.easing.Expo com.greensock.easing.FastEase com.greensock.easing.Linear com.greensock.easing.Quad com.greensock.easing.Quart com.greensock.easing.Quint com.greensock.easing.Sine com.greensock.easing.Strong com.greensock.events.TweenEvent com.greensock.OverwriteManager com.greensock.plugins.AutoAlphaPlugin com.greensock.plugins.BevelFilterPlugin com.greensock.plugins.BezierPlugin com.greensock.plugins.BezierThroughPlugin com.greensock.plugins.BlurFilterPlugin com.greensock.plugins.ColorMatrixFilterPlugin com.greensock.plugins.ColorTransformPlugin com.greensock.plugins.DropShadowFilterPlugin com.greensock.plugins.EndArrayPlugin com.greensock.plugins.EndVectorPlugin com.greensock.plugins.FilterPlugin com.greensock.plugins.FrameLabelPlugin com.greensock.plugins.FramePlugin com.greensock.plugins.GlowFilterPlugin com.greensock.plugins.HexColorsPlugin com.greensock.plugins.QuaternionsPlugin com.greensock.plugins.RemoveTintPlugin com.greensock.plugins.RoundPropsPlugin com.greensock.plugins.ScalePlugin com.greensock.plugins.ScrollRectPlugin com.greensock.plugins.SetActualSizePlugin com.greensock.plugins.SetSizePlugin com.greensock.plugins.ShortRotationPlugin com.greensock.plugins.SoundTransformPlugin com.greensock.plugins.TintPlugin com.greensock.plugins.TransformMatrixPlugin com.greensock.plugins.TweenPlugin com.greensock.plugins.VisiblePlugin com.greensock.plugins.VolumePlugin com.greensock.TimelineLite com.greensock.TimelineMax com.greensock.TweenAlign com.greensock.TweenLite com.greensock.TweenMax com.greensock.TweenNano
-external-library-path="C:\Program Files\Adobe\Adobe Flash CS4\Common\Configuration\ActionScript 3.0\libs"
-external-library-path="C:\Program Files\Adobe\Adobe Flash CS4\Common\Configuration\ActionScript 3.0\FP10"
-source-path src
-source-path "C:\Program Files\Adobe\Adobe Flash CS4\Common\Configuration\Component Source\ActionScript 3.0\User Interface"
-doc-sources src
-window-title "xxxxxx Classes Documentation"
-main-title "xxxxxxx Classes Documentation"
-footer "created by Robert Turrall using ASDoc"

Now. Hit the “Run” button and off you go!

I hope this works for you too!

Just remember that what is output is a collection of web pages, with fairly-well implemented CSS styling. It’s therefore pretty straight-forward to style the output so that it’s “on brand” and to produce some nice end-of-project API documentation.

Thanks to Seb, Dita and a little bit of fiddling, I can now produce ASDoc documentation for my projects, straight out of Flex, and with no need to mess around with the command line. Nice.

I don’t pretend to be an ASDoc expert but I hope I’ve been able to help with this elaboration on it’s use in Flex.

Happy documenting!

 

Flash on the Beach ’09 – my “Elevator Pitch” video

so, here it is: The video of my 3-minute Elevator Pitch at FOTB09, courtesy of Peter Elst, my SQLitewrapper “partner-in-crime”:

Elevator pitch – SQLite goes heavyweight from Peter Elst on Vimeo.

Thank you for filming this Peter!

Apart from the fact that the top and bottom edges were chopped off my slides, all went smoothly.

Our first rehearsal on Sunday wasn’t quite so smooth. Bear in mind that this session involved 20 speakers, all with their own laptops, and add in audio and microphone-swapping and you’re faced with a real logistics challenge. We found that nearly every laptop (some windows, some macs) needed adjustments to match the resolution to that of the lovely 16:9 projector on the stage in the Brighton Dome. Mine didn’t want to talk to the projector at all at first, until about 20 minutes’ worth of power had been pumped into it.

Monday evening’s rehearsal was another story: an initial logistics talk-through and then we worked through all of the presentations, including microphone-swaps and all. Around 5-10 minutes longer than the session needed to be, this set us up for Tuesday.

08:45 on Tuesday and we were all ready, lined up on our 20 chairs behind stage and ready to go…

The rest is history, as they say :)

Thanks again to John Davey (@FOTB ) for the opportunity and to the audience for their support, despite tearing themselves away from their beds after Monday’s party ;)

 

Flash on the Beach Elevator Pitch Exclusive!

Flash on the Beach 2009

A special announcement for those of you who are going to be in Brighton from Monday (or even Sunday) for Flash on the Beach:

During my 3 minute “Elevator Pitch” somewhere between 09:00 and 10:00 on Tuesday morning you will be able to see an exclusive “Flash on the Beach” Preview of new and exciting functionality which really does take SQLite into the big league. My session title, “SQLite goes Heavyweight”, says it all… To find out more, however, you’ll have to be there.

Don’t want to spoil the surprise, do we?

The session itself promises to be really exciting, with myself and 19 others all doing our best to thrill and entertain for 3 minutes each. Don’t miss it – it’ll be a great start to Tuesday, whether everything works or not!! ;)

Looking forward to seeing you there. For more information about the session and who else is speaking, click here…

Until then, have a great weekend.

Robert

 

Flash at the Lake video

No, I’m not in it (not as far as I can see!)… This video compilation of shots from Flash at the Lake this year by dobbelfeld is brilliant – respect!

Gives an idea of how cool this event was – and the music is well-chosen.

Enjoy :)

 

Flex and FDT – happily coexisting on Windows

Flex and FDT running together
Flex and FDT running together, in perfect harmony ;)

I’m working more with FDT nowadays in addition to Flash and Flex. FDT is a cool product and certainly brings some nice features to the table.

I did, however, have a little problem when I first installed the FDT Enterprise Standalone on my Windows XP machine – where Flex Builder 3 was already installed and running nicely.

After installing FDT Enterprise and quickly putting together a little test package and script I hit the “Run” button. The result was an error message I hadn’t expected:

Error: could not find a JVM.

Interesting, when you consider that FDT, like Flex, is based on Eclipse and therefore needs a JVM to even run!

So, it was time to surf around and try to work through the potential issues with my friends at Powerflasher :)

We spent an hour going through various settings and ideas. Finally a small difference the Windows JAVA_HOME setting mentioned by Maxim from Powerflasher got me curious.

Flexbuilder 3 had set this environment variable to “C:\Program Files\Adobe\Flex Builder 3\jre\bin” whereas Maxim’s Windows JAVA_HOME was set to “C:\Program Files\Adobe\Flex Builder 3\jre”

I deleted the “\bin” to point the variable at the root level of the JRE install, restarted FDT, hit “Run” and hey presto – it ran!

So, if you get this issue, check your JAVA_HOME environment variable and drop the “\bin”.

Flexbuilder 3 still runs perfectly too.

Thanks to Tilman, Maxim and Steffi from Powerflasher for their help!