RobotLegs with Gaia Flash Framework, getting started
I’ve used Gaia for a couple of years and recently started to integrate RobotLegs into my projects.
My ‘most useful references’ are:
RobotLegs ‘Hello World’ video – John Lindquist
This video is also a brilliant demo for writing code fast with FDT. I’ve watched it over a dozen times and learn something new regularly. When I watch John creating the Hello World example from scratch I see the state of ‘flow’ I want to replicate in my own work. My current favourite keyboard shortcut is ‘CTRL-PageUp and CTRL-PageDown to navigate between open files in the Eclipse IDE.
How to Use RobotLegs on top of Gaia (part deux) – JesterXL
Gaia and RobotLegs Together
Common Problems – RobotLegs – I reached this page with three ‘common problems’ – I wasn’t exporting a SWC from Flash, I’d already added my View class to the stage before I’d mapped the Mediator, and I had a semi-colon after my [Inject], all definite no-no’s.
Font blurring problems when embedding Captivate SWFs
A current project sees us producing short simulations using Adobe Captivate and embedding the resulting SWF in our own e-learning application.
Our application is deployed using Steven Sacks’ Gaia Flash framework, and loads the Captivate content as an ‘Asset’. Some custom XML parameters let us specify the exact width and height, but despite matching the Captivate settings exactly we were seeing a mysterious font-blurring effect that simply wasn’t there when we viewed the Captivate content outside our application.
It turns out our problem was in the use of customised UI elements in Captivate. We’d imported some button art at an incorrect size and resized it within Captivate. Ordinarily this wouldn’t be an issue because (we discovered) Captivate does some (ahem) ‘magic stage resizing’ in the background when it’s running as a standalone element, and the ‘magic’ wasn’t happening when it was embedded in our Gaia application.
The solution was an old one… ‘do everything exactly right the first time’ – ensure all button and UI art was at the correct dimensions, removing the need for Captivate to do any ‘magic stage resizing’ and restoring complete clarity to our text.
Articulate Engage content inside an AS3 Flash container? Well, almost…
Articulate’s Engage software is a quick and polished way to create eLearning interactions. Unfortunately, it’s also built from the ground up in AS2.
So while the Engage content SWFs can be loaded into an AS3 container, you definitely can’t use images in your Engage content because the XML onLoad event fails to fire when AS2 content is loaded into an AS3 container.
I used ‘Charles‘ to see what HTTP requests were being sent and noticed that:
- When browsing directly to the Engage SWF a GET request for the image is sent immediately after the Engage content XML is loaded; and
- When browsing the Engage content after it’s loaded into my AS3 container the GET request for the image is never sent.
While it’s not cast-iron proof I think it’s safe to assume that an ‘onLoad’ event for the XML might not be firing, so the Engage SWF hangs, waiting for confirmation that never comes.
While it’s not completely crippled (text-only interactions are just fine) this reduces the usefulness of Engage content in any Flash environment that’s been built in the last few years.
Remedial TextFormat instructions…
Don’t waste that extra hour wondering why your embedded Flash fonts (textField.embedFonts = true) aren’t working… Make sure your ‘setTextFormat’ happen AFTER the text has been applied (via htmlText, or CSS, or inline font selection)
AS2 to AS3 conversion? Save on typing!
Jobe Makar has a nice little utility to do the finger-numbing basics of class conversion from AS2 to AS3. Get it here
Flex ANT tasks – "failed to create task or type mxmlc"
I was getting an error trying to use the Flex ANT tasks. Trawling the interwebs revealed I should configure my FLEX_HOME and SRC_DIR properties correctly but the missing piece of the puzzle came from my esteemed colleague Kristen…
<taskdef resource=”flexTasks.tasks” />
When I included this line in the same ANT file as the <mxmlc> task everything worked as intended. And now that I know what to look for (sigh) I’ll point you to these step-by-step instructions!
Flash Player 9 fscommand 'exec' issue – Works in player 8 but not in 9.
I’ve stumbled upon an issue that’s mentioned in other online locations (Actionscript.org, Northcode) and others) but my specific objective, problem, symptoms and resolution were as follows:
Objective – Launch an executable Windows file from within a Flash 9 projector. To test I used Flex to build a button onscreen in a SWF that issued an ‘fscommand(“exec”,”myApp.exe”)’ upon release and after publishing the SWF I used Flash Player 9 to create a projector. The projector worked perfectly.
Problem – At work, using Eclipse/MTASC I made a different Flash 8 SWF, launched it in a Flash 9 debug player, produced a Projector and found that it didn’t work at all.
Resolution – I opened the Flash 8 SWF in Flash Player 8 (instead of the Debug Player 9) and produced another Projector which worked just fine.
::uberGeek::Articles::Using Ant with Flash()
::uberGeek::Articles::Using Ant with Flash()
Nice starting point to using ANT with MTASC (and without FDT). I found this useful because FDT currently doesn’t make its Flash build tasks accessible.
Richard Leggett: Flash Antics – Tutorial: Building Version Numbers into SWFs using ANT and SVN
Richard Leggett: Flash Antics – Tutorial: Building Version Numbers into SWFs using ANT and SVN
Include SVN version numbers into the Context menu of your SWFs. ‘Nuff said.
SetInterval blues…
1) SetInterval accepts scope reference…
Tracing out ‘undefined’ when looking for a clip reference inside a function called by setInterval? setInterval (because it’s an overloaded method) will also accept a scope reference parameter (as long as you express your callback as a string)…
launchInt = setInterval(this,"playSWF",50)
2) Flash 8 vs Flash 9 player behaviour
Niklas Alvaeus tracked this one down… sending a string as a callback function worked fine in Player 9 (and in Player 6), but failed in Player 8. He worked around it by identifying the callback function as a Delegate.










