Blog

  • Flex 2 States & Transitions Example: Pimp My Login

    I always make these more complicated than they need to be, but it’s so much fun, I can’t help it. Regardless, here is an example of 2 login forms built in Flex 2. One uses simple states to represent the main, logging in, and error states that a typical login form can show. The second one does the exact same thing, based on almost the exact some code, but has the addition of transitions. Where “states” are changes to the component when it is a different circumstance, “transitions” are changes between those states. A Flex component that has states, but no transitions immediately changes from one state to the next visually. If you add transitions, you have control over how a state changes from one to the next.

    Both examples below are simple. If you click submit, it’ll disable the fields, and then go to an error state. After 2 seconds, it’ll reset. If you fill in something for the username and password fields, it’ll go to a success state instead of an error state instead. The top one uses state tags inside an MXML component. The bottom does the same with the addition of transition tags to animate between those states.

    As mentioned, the code base is exactly the same with 3 modifications between Login.mxml, and Login2.mxml.

    1. I removed the setting of the border color to red from the error state tag, and put it in the transition instead since I wanted timing control of when it turned red.
    2. The logging in state in Login2.mxml adds a SWFLoader that loads an animation.
    3. The Login2.mxml doesn’t reset itself 2 seconds after the error state is shown. Instead, I have the ending of the transition call a function to do it instead. This gives the transition enough time to finish before a new state is shown.

    We had to use ViewStacks or destroy & create this stuff manually, with no DisplayList mind you, in Flex 1/1.5. The ability to have the same component represent its state declaratively as well as have control over how those states change is awesome! In an ideal world, you can comment out the transition tags, and the component will still work just fine; it’ll just have abrupt changes. To me, if you get a proper designer / information architect involved, the experience in having appropriate transitions to guide the users attention vs. abrupt GUI changes without them is night and day.

    Why blur things out? Degrade importance, and allow the depth of field effect to allow the user to focus on the most forefront content.

    Why show loading animations? To build the user’s confidence that the application is “doing something” vs. appearing broken.

    There are various proven tested techniques you can implement, none of which I probably show correctly.

    Login Form State & Transitions Example – View Source | ZIP

  • Flex Community Pulse Survey Results

    Being anonymous is l@m3. Besides, cflex.net is getting hammered. lol, 404!

    1. At what stage of technology selection does Flex play in your immediate team?

    – Fully committed

    2. How long have you been using Flex?

    – 2 years+

    3. What would you consider your expertise level?

    – Advanced

    4. Outside of Flex, what have been and continue to be your primary technologies?

    – PHP
    – Flash

    5. Do you use the Flex Data Services (FDS) product?

    – No

    6. When it comes to Flex, what did you used to struggle with, that you no longer have problems with?

    – Dynamic layout. Using declaritive layout in Flex with it’s built-in LayoutManager saves me oodles of time when doing GUI’s. CSS inheritance helps too.

    7. When it comes to Flex, what are you currently struggling with, or wish were improved, made better, had more of, etc…

    – Integration of Flash designs.

    8. How many years have you been programming in general?

    – 6-10 years

    9. How many developers are in your immediate team?

    – n/a – unemployed (if I was, 1-5)

    10. How many employees are at your company?

    – n/a – (if I was employed 101-150)

    11. Has Flex been adopted by your entire company/top level business unit as a primary technology?

    – Yes

    12. What prevents your company from taking things further with Flex?

    – Nothing, we’re 100% Flex or bust!

  • On top of Liz Claiborne on top of Flex

    Late in the day, attempting to walk off the atypical after-lunch food coma. Need more protein. Like every married man, I had succumbed to the inevitable horror that befalls us all, aka, shopping with my wife. I loathe shopping, but I do like the Price is Right, though. Regardless, I had a brief respite at the shoe section in Macy’s. This area is ripe with selection, and most important of all, gushy chairs for guys to chill.

    Cellphone signal downstairs is atrocious. Panic sets in. No surfing WAP-CNN for JXL. I had one of my best attitudes yet, held my game face for hours. Was my fate to toss it all away just for the joyous reprieve of leather wrapped mush-foam? Apparently. I chose not to choose life… I chose something else. A chair. A comfy chair. A chair which allowed me to come to terms with my current situation. Before, I had been compensating my equilibrium, with no spare cycles to focus on my current situation; standing and lookin’ like a playa’ playa’ was challenge enough. You see, I have been recovering from a cold I’ve had since New Years. While I can code and blog reasonably well, dry north Georgia mountains + allergies + head cold == whoa dude, I’m dizzy. I’m sure if I was so inclined, I could pull off the occasional ollie. If I were so inclined, which, at the time I wasn’t, and the nearest skateboard must be… geez, 800 yards away.

    I lounge in the center chair of 3, arms outstretched upon them like I am being served cake by the shoe employee’s. No, I don’t know why they had cake. This was all a farce. I was irritated, all I could think of was my next AS2 class I had to build for my Flash Lite 2 app. I didn’t bring my laptop to the mall. Dear God… get me out of this. My gaze started wandering, desperately seeking something to entertain me.

    Liz Claiborne on FlexI happened upon a stack of boxes that were in the chair to the left of me. The top one was smooth… black. Nondescript excluding the golden print in the center, small, but clearly visible. OMG… does that say… FLEX!? I hug the box.

    “Sir, do you need some help with those?”

    I couldn’t move, so I darted my eyes instead.

    “No, no, thank you mam, I’m just happy to see this box here.”

    “I’m sorry?”

    “I’m not. My wife is over there, actually, trying to find… a 7 or something. Ask her.”

    :: I’m 8 years old, this is my fort, and you have no chance of penetrating my defensive couch-pillow walls. ::

    The woman quietly clears her throat uncomfortably and walks the opposite direction of my wife. The ruse worked; the poor woman fell for it, thinking some woman 20 years my senior was my wife; ah, the wonders of plastics. I’m hugging Liz Claiborne who is on top of Flex, and I’m not letting go… unless her majesty is ready to leave this cursed mall. Thanks for the reprieve, Liz.