Hi,

I am subclassing UIComponent to do something very similar to a VBox. The 
difference is that when a child is selected, all the children are then moved so 
that the selected one is centered vertically on the VBox.

I thought this was easy. But my code never works except for when the 
"selectedIndex" is zero (when the top most child is selected). If I try to 
change "selectedIndex" after my component is created, the layout never updates. 
If I try to set the "selectedIndex" in its MXML tag, it behaves different when 
I run it than when I run it in debug mode and step into my layout code...

I look at the mx.containers.VBox and notice it actually uses a utility class 
called "BoxLayout" which uses mx_internal namespace.

My code is very simple, in my updateDisplayList, I do:

(pseudo code)

find the selected child,
   it's vertical position (compared to the parent) is 0;
do this for each child "above" the selected child
{
   its y position is the y position of the child that is right "below" it minus 
this child height;
}
do this for each child "below" the selected child
{
   its y position is the y position of the child that is right "above" it plus 
this child height;
}

I use Container.getExplicitOrMeasuredHeight() to get the actual height.

Right now, I am trying to use the mx_internal BoxLayout and see if it works.

Thanks.

Reply via email to