Where did the FlexBuilder Advanced Constraints UI go?

December 14, 2007

New in Flex 3 is the vaguely named, but oh-so cool Advanced Constraints feature. Constraints was originally an SDK feature built atop the existing Flex 2 constraint-based layout system. Remember that in Flex 2 you could use the constraint styles (left/right/top/bottom/verticalCenter/horizontalCenter) to constrain controls to the edges of their parent container’s border. You could use constraint-based layout in any container that supported absolute positioning, like Canvas, Panel and Application. For Flex 3, the Advanced Constraints feature introduces the concept of ConstraintColumn and ConstraintRow objects that can be used to partition up absolute positioning containers. We broadened the constraint syntax to allow for controls to be constrained to these columns and rows and using this mechanism you can do really cool things like sibling relative constraints and better re-flowing layouts. This functionality is still in the Flex 3 SDK and you can definitely hand code these layouts relatively easily. The FlexBuilder 3 code editor gives code hints and code editing help for the new Advanced Constraints syntax out of the box. Check out the documentation, feature writeup and sample code on labs for more in-depth examples of syntax and usage and how to leverage Advanced Constraints in your layouts.

Once the SDK implementation was done (somewhere after Flex 3 beta 1), we embarked on building a really robust authoring UI in FlexBuilder 3 DesignView to help create and visualize these new constraints. It was an ambitious (and fun!) feature. However, as we got closer to feature lockdown, we realized there were still too many open issues and didn’t feel comfortable with where the UI needed to go. It was a hard decision for all, but we decided to pull the UI from FlexBuilder 3 and fully intend to have a similar authoring UI for constraints in Thermo and future versions of FlexBuilder.

For everyone who really liked the UI and got used to that workflow, worry not, it will come back. You’ll just have to wait a little bit longer, but there are so many Flex goodies to play with in the meantime!


  1. Aaron Leavitt says:

    Thanks for the heads-up on that, I had wondered what had happened. It’s an extremely powerful feature, but like many powerful features it was also somewhat complicated. Looking forward to seeing it come back at some point. Even an option to turn it on or off would be great!

  2. Brett says:

    thanks for the update…sad to see it go. I hope it will be brought back in a patch once the final is released. I really prefer it over the old UI.

    Also I’m really anxious to see the bug fixed for the dual view/undo problem I have…it a great feature that I don’t think enough people know able but it’s a great was to get around in your projects.

    Looks like it will also be a future build after the final release. Guess I have a lot to look forward to after the final release:)

  3. Ian says:

    I for one am glad to see it removed .. It seemed like it wasnt ready for primetime , made the whole flexbuilder sluggish and a pain to use .
    That said, I did see that it had lots of potential and look forward to a re-incarnation in the future , hopefully a bug free one ;)

  4. Lordy says:

    I’m just glad that we have advanced constraints! BTW performance wise is it cheaper to use these constaints then nested containers and spacers?

  5. Brett Walker says:

    That’s too bad, but better to see a feature done right late than saddled with bad decisions for years to come.

    On a different tangent, I was playing with the beta 3 syntax coloring (thanks so much for finally adding it to FB) and noticed that the preview for Actionscript and MXML coloring doesn’t reflect the current background color (which is confusingly set in a different part of Preferences).

  6. [...] noted here on Deepa Subramaniam’s blog, this feature has been dropped from Flex Builder 3. Sad to hear this, because honestly, this made [...]

  7. @Brett: I remember someone showing me that bug at 360Flex in Seattle (was it you?). If you’d really like to see it fixed, go ahead and vote on it and get someone else to vote on it too. That will raise its priority when we decided on bugs to fix in later releases. I’ll also comment on it internally.

  8. @Lordy: I am working on some performance tests as we speak but on a whole I’d venture to say that constraints are faster then heavily nested containers. Stay tuned for specific performance results, I’ll publish them here on my blog.

  9. Roger says:

    Yay Deepa’s feature!!!!! You rock :D

  10. Brett says:

    @Deepa: I showed someone at max in chicago this bug. I posted the bug back when the first beta came out. I was hoping more would see it and vote on it as well. Again it’s a great feature!

  11. @Brett: Yup, that was me. Hey, we’ve met! Yes, its a handy little trick for improving efficiency and I can see how the bug would be quite annoying. Get it voted on and that will definitely make it high on the list of bugs for the next release.

  12. [...] iamdeepa on flex » Blog Archive » Where did the FlexBuilder Advanced Constraints UI go? – For Flex 3, the Advanced Constraints feature introduces the concept of ConstraintColumn and ConstraintRow objects that can be used to partition up absolute positioning containers. We broadened the constraint syntax to allow for controls to be constrained Tags: adobe, amqp, architecture, asynchronous, collaboration, communication, development, distributed, flash, flex, flex3, flexbuilder, messaging, opensource, programming, software [...]

  13. sandrar says:

    Hi! I was surfing and found your blog post… nice! I love your blog. :) Cheers! Sandra. R.

Leave a Comment