Meeting review

0 views
Skip to first unread message

Jacob Wright

unread,
Oct 2, 2009, 1:36:31 PM10/2/09
to reflex-steer...@googlegroups.com
We had a skype meeting last week. We didn't take notes, so this is my best attempt to remember what we talked about and decided on. If you (Tyler, Ryan, or Ben) remember something I left out or remember something differently than I did, feel free to add on to or correct me.

Behaviors

First we discussed behaviors. We want to make it easy and intuitive to add and replace behaviors. Previously we were looking at giving each behavior a name and using that to replace existing behavior:

<Button>
  <behaviors>
    <MyButtonBehavior name="button"/>
    <DragBehavior name="drag"/>
  </behaviors>
</Button>

This would make your new button behavior replace the old and add drag to the button. We discussed and decided on doing away with "name." What will happen now is if you set the <behaviors> property it will clear out all existing behaviors replacing them with what you define in there. If you just want to add behaviors on, you will simply add them inside Button:

<Button>
  <behaviors>
    <MyButtonBehavior/>
    <DragBehavior/>
  </behaviors>
</Button>

Or just to add drag:

<Button>
  <DragBehavior/>
</Button>

In ActionScript it is the same as before:

button.behaviors.button = new MyButtonBehavior();
button.behaviors.drag = new DragBehavior();
button.behaviors.drag.enabled = true;

Reflex Defaults

For the default skins and behaviors of Reflex we are going to add metadata that will hold the string name of the classes to use. Then we will have a linker class (or several linker classes for different sets of components) that will link in these behavior/skin classes on a per-application basis. The component will only create and use the skin/behavior for it if the class is found. If not, it won't. So you have control over which classes are linked in or not. If you create your own theme, you don't have to compile in the default Reflex classes. It will be easy to change later if we decide to.

Additional dynamic properties, aka styles

I am not sure if this discussed this last call or the one before, but we talked about layout, how some properties on the child are needed in the layout of the parent. For example, in Flex 3's absolute layout that Canvas has, it looks at the child's left, right, top, bottom properties. Other layouts like an HTML block layout might consider a margin property on the children, etc. We thought that having a dynamic style object on the component with getStyle and setStyle methods to allow setting in MXML would allow for greater extension and functionality. This would not be a full styling framework, but may be tapped into by a styling framework that is added on. It allows minimal default code size while still allowing the ability to add features when size is an acceptable cost for the maintainability that styling brings.

Presence at Adobe Max

Ben and Tyler will be presenting the Reflex and discussing motivations behind it and high-level architectural decisions at MAX. Hopefully there will be a demo or two, but that may not happen. It will be at the 360|MAX unconference on Wednesday at 10:00 am. We've also had talk about doing a little coding together after that at 11:00 am. All who are interested, stop by the tail end of the preso at the 360|MAX area and we'll find a place to go code.

Thank you for your participation on the list. Please let us know what you like or don't like and suggestions for what could be better.

Jacob
Reply all
Reply to author
Forward
0 new messages