Flex
I have published the source code that I demonstrated during my 360|Flex presentation on github. You don't need git to get the source, just click the download button on the page. Again, this is the code for Improving your Programming by Reading the Flex Source Code.
This does not include the class browser. That is an AIR project that I will publish separately.
Github is a source repository system like Google code or Sourceforge, but using git - a distributed source control solution. I recommend git, if you haven't used it, for any side projects or open source projects that you work on. Git allows anyone to branch/fork a project and make any changes they see fit. Then the changes can be merged back in if they are useful. Github supports forking of open source projects so people can, for example, make changes to a project available without needing approval of the original maintainers.
The nice folks at 360|Flex (with sponsorship from Adobe) recorded our presentations in San Jose Aug 18-20th 2008. I'm planning to transcribe the talk and perhaps post some better screencasts for the middle part of the talk. I had many specific examples prepared that floundered somewhat on stage. Also, a friendly attendee suggested that posting about Eclipse/Flex Builder 3 shortcuts would be good, so I'll do that. There are so many things that I planned but didn't include!
The best part of the talk is the first 8 minutes, at 0:45, and 1:01 where I show the Star Wars of Flex development. I also showed a few utilities that I've developed: a class browser, a stack inspection tool (to find method callers), and a performance profiler. I'll be getting these together and posting the source within the next 2 weeks.
This is a teaser for my upcoming talk at 360|Flex San Jose. I will be talking about how to improve your programming by reading the Flex source code. You should come to the conference (even if you aren't interested in my talk). There are lots of other great speakers.
Choosing a base class for your Flex component involves understanding the base classes that Flash provides. The primary classes in Flash that you should recognize are Sprite, Shape, and TextField. These classes are by far the most common in Flex code and you need to know what capabilities and limitations they have.
I am speaking at 360|Flex San Jose in August and you should come! 360|Flex is a great conference that really supports the Flex community. It's a great place to meet other developers (and even some designers), to learn, and to have a great time. I'll be talking about the Flex SDK source code and how to improve your development by reading it (and understanding it). The conference runs from August 18-20, 2008 and August 17 (Sunday) is a full day of free training.
I'll be discussing the class hierarchy, the internal compositional classes, and the importance of interfaces. I will tear apart some components and offer suggestions on using them and better ways to design similar components. I will touch on the Flex component lifecycle, skinning, inheritance, custom components, list classes, and containers.
Lastly, I will discuss the Flex SDK API, how it is written today, how it will be evolving in Flex 4/Gumbo and what else Adobe needs to change! I will explain ways to use more DRY (don't repeat yourself) development practices using better componentization and compositional classes.
I am speaking at 360|Flex San Jose in August and you should come! 360|Flex is a great conference that really supports the Flex community. It's a great place to meet other developers (and even some designers), to learn, and to have a great time. I'll be talking about the Flex SDK source code and how to improve your development by reading it (and understanding it).
I'll be discussing the class hierarchy, the internal compositional classes, and the importance of interfaces. I will tear apart some components and offer suggestions on using them and better ways to design similar components. I will touch on the Flex component lifecycle, skinning, inheritance, custom components, list classes, and containers.
Lastly, I will discuss the Flex SDK API, how it is written today, how it will be evolving in Flex 4/Gumbo and what else Adobe needs to change! I will explain ways to use more DRY (don't repeat yourself) development practices using better componentization and compositional classes.
I plan to post some more teasers on my blog (http://jonathanbranam.net) so people who don't know who I am or what I'm talking about can get a better sense of the session and why they should (or shouldn't) come.
The NameUtil class provides two methods for creating names for DisplayObjects. In particular, these two methods are used in FlexSprite and FlexShape to set the name property and the return value of toString().
The FlexShape class is a very small class that extends the Flash Shape class and sets its name property to a unique identifier and overrides the toString() method to return a dot separated path to the Flash Stage.
The behavior is fully explained in the article on Intermediary Flex classes along with FlexSprite which has an identical implementation.
The FlexSprite class is a very small class that extends the Flash Sprite class and sets its name property to a unique identifier and overrides the toString() method to return a dot separated path to the Flash Stage.
The behavior is fully explained in the article on Intermediary Flex classes along with FlexShape which has an identical implementation.
These classes mediate between Flash and Flex and provide some minor translation of the functionality of Flash into the functionality expected by Flex. FlexSprite and FlexShape translate the name property and toString() method into the expected behavior in Flex.
Both classes have essentially the same functionality. In their constructor, they perform an assignment such as this (from FlexSprite):
-
name = NameUtil.createUniqueName(this);
This is an application I built that functions as an address book, a phone using Ribbit, and a 3d Mii Editor (like on the Nintendo Wii) for the people in your address book. The address book can also load your contacts from Facebook using the "Little People" application that I wrote. The Miis are rendered in full 3d using a custom combination of Degrafa and Papervision3d.
This is the MiiCall application.
Further implementation details in the full post.
