I don't know why it's behaving like that, but it seems to work if you set the state after the form item has been created, like this:
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"> <mx:Form> <mx:FormItem label="Type" creationComplete="st.currentState='taskQueue'"> <view:SectionTypeControl id="st" /> </mx:FormItem> </mx:Form> </mx:Application> Anyone has an explanation? Haykel Ben Jemia Allmas Web & RIA Development http://www.allmas-tn.com On Mon, Jan 19, 2009 at 5:59 PM, mauricen <maur...@morninglight.co.uk>wrote: > I have a component which can appear initially in one of two states, and > can subsequently be switched between them. When this switch takes place, > I want a transition to occur. Here's a tiny model of my component: > > <mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml"> > <mx:states> > <mx:State name="state1"> > <mx:AddChild> > <mx:HBox> > <mx:Text id="text1" text="t1:"/> > <mx:Text id="text2" text="t2:"/> > </mx:HBox> > </mx:AddChild> > </mx:State> > </mx:states> > <mx:transitions> > <mx:Transition> > <mx:Move targets="{[text1, text2]}"/> > </mx:Transition> > </mx:transitions> > </mx:Canvas> > > If I embed this component (call it MyComp) like this: > > <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"> > <view:MyComp currentState="state1"/> > </mx:Application> > > the transition takes place as the component appears, and everything is > fine. But if I put it inside a FormItem, like this: > > <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"> > <mx:Form> > <mx:FormItem label="Type"> > <view:SectionTypeControl currentState="taskQueue"/> > </mx:FormItem> > </mx:Form> > </mx:Application> > > the transition never takes place and the two labels remain superimposed. > > In fact the problem is a little worse than this. In the toy > application above, you can replace FormItem by a container like HBox > and it works again. But in my real app I can't use it inside a Form > at all. What gives? > > Maurice > > >