Posted: April 14th, 2011 | Author: Huyen Tue Dao | Filed under: Development | Tags: 360flex, conference, flex, speaking, text layout framework, tlf | No Comments »
On Tuesday, April 14th I gave my presentation “Seriously, You Can Do Cool Things: Getting Advanced with the Text Layout Framework” at 360|Flex 2011. I want to again thank everyone that came to the session and stuck around till the end. Double “thank you” to the folks who left some of the nicest feedback on Twitter. You guys totally made my day.
Just a reminder that you can give an in-depth review and rating of my (and others’) session at apps.360conferences.com.
I have uploaded the slides to SlideShare and am linking a PDF version at the bottom of this post. All of the code for my examples as well as continuing work on TLF is on github. I am going to be expanding examples, trying out new TLF experiments, and adding documentation in the future so please check back or put a watch on the repo if you are interested in more of my TLF madness.
360|Flex has definitely become one of the highlights of my year as a developer, and we have such a fantastic community. Wonderful seeing you guys again and meeting new people. Already can’t wait till next year. Incredible job done by John and Nicole Wilker. You guys totally rock. Please keep up the great work.
“Seriously, You Can Do Cool Things: Getting Advanced with the Text Layout Framework”, Slides (635KB)
Posted: February 13th, 2011 | Author: Huyen Tue Dao | Filed under: Development | Tags: 360flex, conference, flex, speaking, text layout framework, tlf | No Comments »
Just writing to let everyone know belatedly that I will be speaking at 360|Flex 2011 in Denver, CO. My talk is entitled “Seriously, You Can Do Cool Things: Getting Advanced with the Text Layout Framework.” Once again I will be tackling things TLF. This time I will focus less on the background and mechanics of the TLF and more jumping into more advanced topics and how to do… yes, cool things. It is not hard to find ill-will and smack talk about the TLF on the tubes, and I share some (if not many) of those complaints and criticisms. However, if you put some sweat and time into, the TLF can provide you with a foundation for creating interesting features and components. My main goal is to share my experiences and strategies and ideas for making this happen.
So if you are going to 360|Flex 2011, please think about stopping by and having a look/listen.
Posted: October 4th, 2010 | Author: Huyen Tue Dao | Filed under: Development | Tags: as3, flex, text layout framework, tlf | 7 Comments »
Update [15 March 2011]: Changed link to github repo for this example to a new repo.
Update: The link to my pagination example was broken for a while but I have fixed all the links so the example should be accessible again. Apologies.
So a commenter named Roberto asked for an example of TLF pagination. I actually had planned to create a pagination example for my 360|Flex presentation but ran out of time. So I have implemented one and added it to the github repo for my presentation-related code a new github repo I am using for all of my TLF-related code and projects.

You can view the example live here.
Pagination involves adding containers to a TextFlow rendering of a particular size as needed until all text renders. Now, assuming that you want text lines to fully render and not clip, you will set ContainerController.verticalScrollPolicy to ScrollPolicy.OFF. When scroll policy is set to ON or AUTO, the ContainerController basically assumes that scrolling will occur within its container and so text lines may be clipped at the bottom or top of the container. If there is more text than can be rendered in that container and there are no proceeding containers linked to the TextFlow, all remaining text lines are assigned to that container. Therefore, the end of the container content will be the end of the TextFlow. When scroll policy is set to OFF, text lines render only where they are not clipped or hidden.
The logic for paginating a TextFlow rendering goes like this:
- Add a container and link to the TextFlow via a new ContainerController.
- Check if
ContainerController.absoluteStart + ContainerController.textLength == TextFlow.textLength.
- If false, then go back to step 1 and repeat and if true, then you have rendered all pages.
If you want to keep scroll policy as ON or AUTO, then you will want check instead if ContainerController.getContentBounds().height > container.height and add an extra page if true.
I also made a late-night edition of pagination with editable text. My basic idea in dealing with pagination was to listed for the UpdateCompleteEvent dispatched by the TextFlow and to check the containers and container controllers and make sure that there are no empty pages save for the first page. I have not yet implemented any auto-scrolling on addition or removal of pages, although if anyone wants, I can give it a go.
I hope this helps someone out.
Posted: September 24th, 2010 | Author: Huyen Tue Dao | Filed under: Development | Tags: 360flex, conference, dc, flex, text layout framework, tlf | 1 Comment »
I want to thank everyone who came to my talk, “Typography + Text Editing in the Text Layout Framework.” Text formatting and layout is not the sexiest topic in the world so I was glad to see that people were interested. I also was glad to get folks asking questions, looking like maybe they would be interested in using the TLF themselves.
I have uploaded my slides to both this site and slideshare. In regards to the example code, I have a GitHub repo and also have attached a zip of the code to this post.
I will be updating the slides soon to add references and adding comments. In the near future, I may write follow-up posts discussing in detail how I implemented some features I added to the example code, especially one or two that I did not go over during my session.
Would love to hear from folks who have questions or just want to knock heads on the TLF.
Thanks again everyone for coming.
Typography + Text editing in the Text Layout Framework (PDF, 299KB)
TTTLF Code (ZIP, 598KB)
[UPDATE: I changed the github repo so the URL is different. Also I have created a library for TLF-related components that I have done for examples and may do in the future.]
Posted: April 18th, 2010 | Author: Huyen Tue Dao | Filed under: Development | Tags: adobe, capital flash camp, flash camp, flex, speaking, universal mind | No Comments »
First off, thanks to Sara Nieburg, Andy Powell, David Tucker, and Todd Cieplinski of Universal Mind for putting together a Flash Camp in the DC Metro area. We just don’t get enough community events in the aret. It was also great to see some familiar faces from the Capital Flex User Group. Admittedly, I haven’t been able to attend in months, but I was told there was beer last time. Damn, need to start going again.
I know the attendance was not what some people might have hoped, but I think it wasn’t bad considering that Capital Flash Camp was announced just a little over a month ago. The DC area’s Flex community is not as large as other places (Flash Camp SF was the same day and heavily attended, but it’s a big hub for the community) so it’s worthwhile whenever we get together.
As an aside, the Naval Heritage Center is a great place to check out if you’re doing the tourist thing in DC.
So presentations…
Terry Ryan, Keynote: Terry is a platform evangelist from Adobe and gave an overview of all the features available in Flash Builder, Flash Catalyst, and CF Builder and discussed workflows between the three. Even with all of the new presos on Flex 4, there was still plenty to learn (I had no idea about the two-way binding in Flex 4).
Jeff Tapper, Flex 4 for Flex 3 Developers: As always, Jeff gave a great preso between his straightforward-yet-humorous delivery and his ability to explain the why’s behind the how’s and what’s.
Christian Saylor, The Art of Storytelling: Really enjoyed how Christian (Anti-Chris) relating storytelling to designing applications and more importantly his take on how and why some applications and products take hold of us and change our ways, while others don’t.
Carl Smith, It’s a Matter of Trust: Carl’s presentation was a hilarious overview about the different ways that trust affects how we interact with the world in general and with technology in particular. I had the pleasure of chatting with Carl, owner of nGen Works, and he’s got a brilliant perspective on what makes for good applications. Ask him about usability if you get a chance to talk to him.
Adnaan Ahmad, Introduction to Flash Catalyst: It was good to actually get a demo of Flash Catalyst and I wish Adnaan had gotten more time to go more in depth with it. Nice job though.
Dave Watts, Using Flash Builder 4’s Data-Centric Development with ColdFusion 9: I’m not a CF person and so a bit of the preso was lost on me, but it seems that there are a bunch of niceties for connecting to various data sources and wiring them up to your Flex apps.
Chris Scott, Swiz Framework – Brutally simple micro-architecture for Rich Internet Application development with Adobe Flex: I personally got a ton out of Chris’s talk since I’m using Swiz for this first time at the current gig. The Swiz team hasn’t quite caught up with their documentation, so it was good to have Chris talk about various features and how to apply them.
For anyone interested, here is my preso and the code from my examples. Not much is different than my 360|Flex preso and I left out code that I didn’t go over this time around.
Slides (1.1MB)
Greenthreading MSNBC Data Set (ZIP, 2.6MB)
Overall, it was a great day.
\m/\m/