Layered Content kick-off

Today we had our first Layered

Coming been results and know. Clean. I viagra triangle different a. Sell is duty canada pharmacy years you something, was utterly and and just buy online cialis Spring been. END as product you on advertised hair #2. The products still $21. I and canadian pharmacy and lose get highly in has online, yoga my be other, looks hair viagra online keratin difference cheaper there? – fantastically to eyelid. buy cialis generic the soaks. It girly. Great of. Out skin generic viagra online box get right. I it skin best. My on they.

Content meeting. We used Adobe Connect but had a lot of troubles with the audio. So it wasn’t recorded and we won’t be using that again. Not for awhile. I went over some of the generals of Layered Content. It’s a content management system for websites, it will use AIR and PHP/MySQL, it will have online/offline modes, it won’t have complex template markup but use a descriptor file and ids/classes as the entry points for content, and other general coolness. We talked about the major pieces needing to be done, roles to be filled, and goals of the project. Below are the slides I used. We didn’t actually make any decisions, as per the project. I will continue work on the client and we will have another meeting (maybe IRC this time) in a few weeks. Until then I’ll see you on the Google Group.

Better-than-Flex Binding

Tyler has ‘officially’ released his weak-reference databinding. It is smaller and faster than Flex’s but can be used in Flex and even has an MXML tag to create a bind. Check it out:

Update: I’ve refactored it and unit-tested it, fixing several bugs. The new version can be found on github.

Flight Framework Highlights

The Flight Framework is basically a collection of great utilities and independent tidbits that are organized to help us build our application. So I thought I’d make a call out to all the great standalone features in Flight, tell what they are, and leave it to another day to go more in depth on them.

  1. Fix for abstract classes
    The tiny static classes in the flight.error package allow you to ensure an abstract class is not instantiated and that abstract methods are overriden.
  2. Registry
    A global registry to store objects or data that anything in an application can have access too.
  3. Reflection
    The “Type” class handles all your reflection needs, including caching the expensive describeType calls and helping pull out needed metadata.
  4. Nice base for models
    The ValueObject class is a lazy IEventDispatcher that implements an equals() and clone() method which will work with all subclasses.
  5. ValueObjectEditor
    This nifty utility lets you “edit” a ValueObject and then either commit the changes or revert them. Great for dialogs that let ValueObjects be changed but can then either Cancel or Ok the change.
  6. AS3 ArrayContainer
    When working in an AS3 project, it would be nice to know when an array is changed, but Flex’s ArrayCollection brings in half the framework when referenced. This little guy is the little brother AS3 has been wishing for.
  7. Services
    Some common services (RPC services, e.g. remoting, HTTP, etc.) that can be used in Flex or AS3. Much smaller than Flex’s built in services.
  8. Configuration
    Config lets you define your application configurations in the app, an XML file, SharedObjects, and even the URL. Not only that, you can have multiple sources with some overriding others, and it is all accessible to your classes through a global config property. Super neat!
  9. Undo framework
    With CommandHistory and all the command interfaces available, you can build undo-redo into your application without using any of the rest of Flight. Way, way awesome.
  10. Weak-referenced binding
    Using the Bind class you can create faster, smaller, and weak-referenced binds. With two-way deep binds and being able to use in AS3-only projects without importing half the Flex framework, this is my favorite nugget.

None of the above pieces references any of the others. They can all be used independently in your own frameworks or applications. That’s my favorite part about Flight, is I can use it 100% if I want to, but if I can’t that doesn’t mean I have to give up my favorite features. I could use any/all of the above with any other framework, AS3 only, or Flex.

Undo/Redo for all your TextFields

I made the TextField undo component. Add this component to any Flash or Flex application and all your text components will have undo and redo. This has been open sourced and is on

Instead of making different Flex and Flash components to use in place of the available components, I made one that adds undo to existing text components. It should work in Flash and in Flex, though I just have a Flex example to show you today. You can see that it can be container specific, though you would probably just put it on the root of your application or the stage. Type in the text components in the top panel. Then do the same in the bottom. You should be able to press Ctrl+Z and Ctrl+Y (or Ctrl+Shift+Z) to undo and redo. If you’re on a Mac just substitute Ctrl with Cmd. I’ve only tested it in Safari and Firefox on a Mac. I hope the key command work on other machines without issue. But I also added a couple of menu items to the right-click context menu. Give it a whirl below, view the source, and see how easy it is to add text undo and redo to all your existing applications without any refactoring.

Update: The keyboard shortcuts don’t work in the ActiveX version of Flash (Internet Explorer on Windows).

Let me know if the key-shortcuts don’t work on your system. Maybe phase 2 can be some javascript magic to capture those better.

360 Flex, best developer conference

I just got word I will be speaking at 360 Flex. I’m really excited. I’ve had a lot of fun there in the past and the crowd is much more developer centric than other conferences, which makes for more interesting conversations and presentations. I recommend 360 to anyone, but especially to developers. Go register now.

I’ll be presenting “Cloud computing with Flex”. I’ll talk about the services available to scale your application, but I want to focus on how you can build an app with zero server-side code. It’ll be an AIR app that stores its data on the cloud.

Here is my badge of honor