Test Flex/Flash throttled (aka Simulate Download)

Most of the Flash application deal with server side data like images, xml files etc. We tend to forget about that because the default Run or Debug commands in Flex will open a local html file (and also because we developers often have quite a nice internet connection when testing remotely). Thus all data is loaded nearly instantely. In Flash we have a menu command called «Simulate Download» to see how things run at different bandwidth situations. But how to achieve this in Flex? I’ve been using Sloppy for a long time. It’s little java app that can be started via a simple web click. It’s really easy to use and does very well what it does. For debugging your app (your flash website) throttled in Flex Builder simply follow these steps:  

  1. Open the Sloppy website
  2. Click the little Sloppy icon:
  3. A «sloppy.jnlp» file is downloaded. Open it if doesn’t open automatically.
  4. The actual application will be downloaded and started. If it asks you to trust: trust! :-)
  5. Enter the address of your html file in the bin-debug or bin-release folder. It should be a webserver address. I usually create a symbolic link of my project directory and put it into my local webserver directory.
  6. Click «Go» – this will start the Sloppy proxy and open the page in your default browser. 
  7. Copy the address from the browser window (usually http://127.0.0.1:7569/your/path)
  8. You may close the window. Go to Flex Builder and open the project properties (right click on project folder, last item). In an Actionscript Project, switch to ActionScript Build Path.  
  9. Enter the copied address into «Output folder URL», clear the html name (e.g. App.html).
  10. Click «OK» and you’re done. You can now Run and Debug as if your website was hosted on some server and you had a 256K ADSL connection (instead of your T1). Note: I tried to automate the whole thing (with Ant of course) and succeeded to a certain limit. What I did was download Sloopy’s source code (java), modify it so it can handle more terminal attributes and build the  .jar file. This can be run on command line, which will start the sloopy server. So I created an ant file that does all that for me, but this ant file would only be cool, if it could also trigger the run or debug commands and modify the output folder url. I haven’t found a way (at least not a satisfying one) to do this, so I might just follow the manual street for once ;) Another note: If you are windows user, you might wanna try this Firefox plugin: Firefox Throttle

Comments

brandy: Firefox Throttle doesn’t work with localhost, sadly.

Oliver: There’s nothing quite as useful as Charles IMHO… quite wonderful http://www.charlesproxy.com/

Geoff: @ Oliver, I have to agree on that one. Charles is one of my favourite pieces of software that I just during Flex / Flash development! It’s just great and working perfectly. cheers geoff

Ranoka: This worked really well for me. I used MAMP to set up my local server, which was easy. Sloppy is a great little app, and symboliclinker works great too.