Job: BMC Software looking for Flex Developer

October 6th, 2011

The company I work for BMC Software, is looking for a mid-level to senior Flex/AIR developer.  This position is on the User Experience Design team and is located in Austin, Texas.  We are currently working on cutting edge mobile projects using Flex/AIR, AIR 3.0 and Flex 4.5.2 (4.6) prerelease.   This is a full-time position.  You can contact me directly if you have questions about the job.

Please check out the link below to apply, make sure to put Jason Graham as the referral name, so I get your information sent to me.

Simple way to hide ScrollBar on Mobile List

August 30th, 2011

I am working on a project where I had the need to hide the scrollbar in my Flex mobile application.  Initially I went down the path of attempting to create skins for the scrollbar and remove the HScrollBar which I wanted to hide, this didn’t work, I then tried to set the visibility in the skin and had problems as well.  After fiddling around with this I realized a simple one line change in my CSS file made this happen.   The following would hide the horizontal scrollbar on all List in your application.

s|List s|HScrollBar
skinClass: ClassReference("");

Cool new iPad 2 case

May 13th, 2011

This isn’t flex related but I Just got my new iPad 2 case, and is by far the coolest case I have seen yet for the iPad 2 and I have been looking around for one since I got my iPad 2. This case leverages the magnets and allows for adjustable viewing angles very easily. The feel of the case is very study and you can customize colors to your liking. I didn’t get the options but the site allows you to put embossed text on various parts of the case. If you have an iPad 2 you gotta check this out.

Flex 4 – DataGroup data provider change effects

January 13th, 2010

I haven’t had a blog post in quite a while but figured this might be useful to someone and will illustrate how to achieve various effects using a DataGroup with TileLayout,VerticalLayout and HorizontalLayout.

When using filtering on your dataProvider the DataGroup recreates all it’s items instead of just repositioning renderers that are remaining thus you must do something like I did.

The basic premise for doing this is grab the start values of each element in the datagroup, filter your collection,cause the datagroup to validate and turn off the autoLayout for the datagroup, setup your effects from old to new values for moving the items, play the effects, then turn autoLayout back on when all effects are complete.

Some notes : I am not sure if this is a bug or not but using the same effect with a List doesn’t work very well if your doing the Scale and Rotate, move seems to work with List instead of DataGroup.

License:MIT License


Source Code

Collapsible Accordion on TourDeFlex

April 4th, 2009

The collapsible accordion component I posted recently is available on TourDeFlex now under Other Components->Jason Graham-Flex Samples

You can download TourDeFlex here

CollapsibleAccordion – cool new flex component

February 2nd, 2009

So I started out with the need for an Accordion, but also to conserve real estate on the right side of my application. I then thought what if I could collapse the accordion, but still allow the user to see the accordion headers.

This is the component I ended up with.

I will give a quick run through of how I implemented the CollapsibleAccordion component. If you want more details you can look through the source code posted below.

I wanted this component to behave exactly like an Accordion, but instead of trying to hack and extend the Accordion class to get this functionality, I started from scratch and extended Container. The component is a composite of Buttons, that represent the accordion headers when in the closed state and during animation, that I rotate and resize and the Flex Accordion whose headers are styled the same as the buttons, so the effect is seamless.

In order for the container to behave like a real container I needed to define a DefaultPropery. The DefaultProperty basically tells the container that when content is added there is no variable defined to put it in to default what ever you set in the metadata for DefaultProperty.

The effect I wanted was to have the Accordion headers swinging from a closed state to an open state and then the content for each accordion pieces sliding in. To achieve this I take the buttons rotate and resize them to the appropriate spots, most of this logic is done in the updateDisplayList. Once the buttons have animated to their correct locations, the accordion then slides in, since the headers for the accordion and the buttons are styled the same the effect is seamless when the buttons are hidden. The addition of a collapse button on the first accordion header allows the user to close the accordion back to the close state. I basically have the component do everything in reverse to achieve the close.

Most of the work is done in the commitProperties and updateDisplayList methods.

Below is just a very simple sample along with the code below.

License:MIT License


Source Code

MAX 2008 sessions on Adobe TV

December 13th, 2008

MAX 2008 videos have been posted on Adobe TV.

In a recent blog post I listed my favorites and ones I suggest you watch.

It doesn’t appear that all the sessions are available yet. Here is one I recommend you check out if you are interested in Catalyst.

Wireframing Experiences and Applications with Peter Flynn

Austin Flex Users Group

December 6th, 2008

Brenden Meutzner the manager of the Austin Flex Users Group, posted about this almost a year ago when the group was starting up, but I figured I would send another note out encouraging people in the Austin, Texas area to look into these monthly meetings if you are in the Austin area and didn’t know about this yet. I am the co-manager so I could possibly answer any questions you have as well.

Just email me if you would like.

For more information and to be notified of meeting times check out the site Austin Flex Users Group

The last meeting was great, with several presentations from members and lots of good schwag that was handed out. Including 3 large $1000+ plus software packages from Adobe. Thanks Adobe!

Creating custom application backgrounds in Flex 4 (Gumbo)

December 3rd, 2008

I wanted to explore some of the cool skinning features in the upcoming release of Flex 4 as well as trying out some of the new effects classes such as FxAnimateColor. In this sample I will show what is involved with skinning the application background.

New components in Flex 4 that are skinable with this new model are designated with the prefix “Fx”, for example FxApplication,FxButton, etc.

These components can have their default skins overriden by implementing your own skin class. Some skins such as FxScrollbar can have all it’s parts skinned and display or just pieces depending on the result you want. The pieces that make up a Skin are called SkinParts.

You can tell the Skin class via Metadata which type component it is used for. By using the HostComponent Metadata tag in your Skin class.

<Skin xmlns="">

Flex 4 component skins contain SkinParts that are defined by the host component. Some of these skin parts need to be implemented by the Skin in order for Component to work properly.

For example the FxApplication skin requires the SkinPart “contentGroup”, this is a required SkinPart for the FxApplication to function properly. If this is not specified any content added to the application will not show up and if you run in debug mode you will get an exception. Some SkinParts are required while others are not.

<Group id="contentGroup" left="0" right="0" 
                                     top="0" bottom="0"/>

The example and source below show some samples of different types of backgrounds, standard, gradiented, animated, and ellipse with a radial gradient.

You can also switch the skin at runtime by simply setting the “skin” style.

this.setStyle("skinClass", GradientBackgroundSkin );

Sample (Requires Flash Player 10)

Source Code

MAX 2008 impressions and best sessions

November 25th, 2008

I attended Adobe MAX 2008 in San Francisco this year. In comparison to the last two MAX events I attended I have to say this years MAX was good overall but not as EXCITING as the past two years. Part of this had to do with the fact that there weren’t as many new BIG announcements. Alot of the news and sessions were geared around progress made on Flash Catalyst (Thermo) and Flex 4 (Gumbo) fronts since the initial announcements at last years MAX.

Day 1 – Keynote
My co-workers and I attended the keynote session, where Kevin Lynch broke his presentation into three different trends which will be big over the next year, these included client and cloud computing, social computing, and devices and desktop computing. At one point during the presentation he held up an iPhone and the audience exploded with applause. He then informed the crowd that “we are working on it”.

The MAX 2008 sessions are suppose to be available the first week of December on Adobe TV.
I won’t get into the details of each session, but I highly recommend you check these out on Adobe TV when they are available.

Day 1 – Best Sessions

Looking Ahead to the Next Version of Flex

This session was given by Ely Greenfield who always gives some of the best sessions at MAX. In the past two MAX events he got my vote for best sessions I attended. This year he tied for first.

Introduction to Thermo and the Next Generation of Flex

Ryan Stewart and company demoed and discussed Flash Catalyst (Thermo) which is Adobe’s upcoming interaction design tool, it is supposed to improve the collaboration between designer and developer workflow. They also previewed the next release of Flex Builder which includes many updates and features getting it near the class of functionality in the existing Java eclipse IDE plugin.
One of the presenters said the release is still “at least a year out”. I asked several of the Flex SDK guys if Gumbo would be on the same release schedule and they didn’t think it would be. Maybe 2H09 for the Gumbo release.

Day 2 – Best Sessions

Next-Generation Flex Skinning

This session was presented by Marc Dennert and was overall good, content was solid and fit the description. The best part of the session was when Ely Greenfield did a 20+ min Q&A and the end of the preso.

Day 3 – Best Sessions

Wireframing Experiences and Applications with Flash Catalyst

This was by a slight win the best session I attended at MAX. Peter Flynn from the Flash Catalyst team did a great job by demoing a full example of building a wireframe in Catalyst and then bringing it to life. Definitely a must see.