Commits to Flex SDK

First one was an addition to the border, to ensure that borders were drawn with the correct radius:

http://bugs.adobe.com/jira/browse/SDK-16147

Second is just a tooltip fix, but EVERY fix committed is a testament to the power of Flex+Open Source!!!!!!!!

http://bugs.adobe.com/jira/browse/SDK-16475

Showing us your Flex Ninjatude

seattle09
Several of the guys @ the SeaFlex User Group started the BugQuash. Sign Up, or go crying home to mommy.

SeattleFUG Project: Extending the Code Jam Project

Last thursday a bunch of members of the User Group gathered around and decided that a good way to learn about new tech was to just do it, and considering that I am associated with a project that is very close to 1.0, and has set goals for 2.0, we decided to work on the ResourceLocator that was developed at the San Jose 2008 Flex 360 Charity Code Jam.

So, the code isn’t there yet, we’re waiting for 1.0, which should be finished in the next couple weeks. But I’ve invited all of the members that want to participate to take a look at the code, and if they get really excited about it, they can even contribute and fix one of the bugs that are still outstanding. This invitation is NOT restricted to my user group members, anyone can join, just contact me (dusty (dot) jewett -at- gmail (dot) com).

One thing I promised the members was a bit of guidance, so I’m linking to Laura’s Flex 360 talk about Mate. Unfortunately, the talk on Degrafa hasn’t been posted yet, but there are plenty of examples on the site.  AMFPHP has been around for a long while, but I’ve enjoyed Sephiroth’s tutorials. I’ll be explaining specific things in our user group meeting on the 13th, and while we don’t have the cool setup that Flex360 did, I should be able to come up with some sort of recording of it.

Singleton-esque, self-aware ‘Kind’ Classes

I recently started a project of converting an older flex app to an AIR app. This app has to scan through a bunch of files, and classify certain types of media based on the location and file extension. Then it saves a manifest of the media to an xml file that can be loaded (without scanning every time).

I started out with a Kind class (think CollectionEventKind) that had the types as strings… but then I had to figure out how to store the regular expressions to make them easily accessible… Then I remembered that while everyone just uses Strings, static const vars can be any class, including it’s own class. So I came up with this class that you can use constants, or locate a specific constant. Code after the fold.
Continue reading →

Launching Files from Adobe Air

So, this takes the long way around, and is not a good solution for mass-distributed applications, but if you’re lucky enough to have a managed environment that you can push installs down the pipe, this is a way to let your users launch files from AIR.

First, download Switchboard.

Second, add Switchboard to your libs.

Third, use this script:

      private function openFile(f:File):void{
        Client.init(super.applicationID);
        var message:Message = new Message();
        var script:String = "var runScript = function(fileName){\n" +
                  "   var theFile = new File(fileName);\n" +
                  "  if(!theFile.exists) return false;\n" +
                  "  theFile.execute();\n" +
                  "}\n" +
                  "runScript(\"" + f.url.substr(7) + "\");";
        message.body = script;
        message.target = "bridge";
        message.onError =  function( msg: Message ) : void {
          // put the error message into the result box
          trace("Error: " + msg.body);
        }
 
        message.send();
        status = "Opening " + f.name;
        Client.close();
      }

This opens up bridge, then uses Bridge to run the “execute()” command that ExtendScript (or whatever they’re calling it) has available.

Now… while this is neither simple or elegant, it gets the job done. I’d rather use Merapi, but my app has to ship before Merapi can go stable.

Flex Code Jam - Now with ∞ more open source code.

The Flex Code Jam Google Code Project is officially LIVE!

I’ve added all of our source code to the repository, including the code from the Seattle 2007 Code Jam (which is unfortunately unfinished…).  We’re heading towards a 1.0 release for the Second Harvest food bank, then after 1.0 we’ll be abstracting some of the pieces, so that it can be a plug-n-play widget for any organization that wants to offer a slick location-based-search. (Though it WILL be tailored to non-profits)

The code is free to download and try out.  We don’t have documentation on how to set up the AMF-PHP yet, but it’s coming… it shouldn’t be too hard, however. We have 7 open tickets as of this post, so feel free to dig in and help us release 1.0.  If you work on one of the tickets, let me know… I’ll add you to the project as soon as you have code to commit.

flash.system.Capabilities

Ever need to know if you’re running in debug mode (programmatically)? What screen resolution the user is running?

flash.system.Capabilities has everything you need.

<mx:Canvas visible=”{Capabilities.isDebugger}” /> will give you a canvas that is only displayed when you are debugging. You can check the flash player version, check to see if audio is enabled, many other things that can really tailor your application to enhance the user experience.

Debugging AIR Drag and Drop

So… you thought you’d be cool and throw a break point on some DRAG_ENTER code, but after you’re done debugging, you’re left with a little floating icon on your desktop.

Debugging Drag and Drop

Never fear, you don’t have to restart your entire computer, open up Taskmanager and you’ll see an application called ‘Drag’. You can kill this application and the icon will disappear. If you don’t see this app, close Eclipse and find the process called ‘adl.exe’ and kill this process.

Restart averted, Yay!

BlazeDS + Flex - First Draft

Welcome SeaFlex’ers and other MXNA visitors. I haven’t gotten around to finishing up my article, but I’ve posted it on my BlazeDS + Flex page 

It’s really a draft right now, you’ll see strikeouts and everything.  Most of the content is in there, but I need to add a page or two about debugging the project, as getting an Ant-built project to debug properly in Flex can be a pain.  I’ll also be adding some info about how to debug your java code at the same time you are debugging your flex code.

Take a look, and feel free to leave comments.

BlazeDS + Flex, From a Java Newbie’s Perspective (Background)

I’ve recently committed to speaking at the Seattle Flex User Group meeting in Feb, and in preparation, I will be posting my ‘notes’ here. Hopefully I will be able to take you from knowing no java to being able to have a simple yet useful application working in BlazeDS. This application will utilize Java, Hibernate and MySQL to power the Resource Manager graph from ILOG Elixir. For Java newbies like myself, I can recommend the following reading materials (I recommend signing up for OReilly Safari):

**update** I’ve moved everything to a static page, view it here: BlazeDS + Flex
Continue reading →