Can you extend this concept slightly for me. I have several dynamic items to display in the view (whether they are displayed is controled through binding and set functions) this works.
I just can figure out how to control the order that they are drawn on the page. --- In [email protected], "Alex Harui" <[EMAIL PROTECTED]> wrote: > > Are you asking about: > > > > private function fAddCustomView(compClass:Class):void > { > var canCustView:Container = Container(new compClass()); > canCustView.label = "Custom " + > cbCompList.selectedItem.label; > vsComps.addChild(canCustView); > } > > > > ... > > fAddCustomView(Comp1); > > > > > > ________________________________ > > From: [email protected] [mailto:[EMAIL PROTECTED] On > Behalf Of phall121 > Sent: Monday, June 04, 2007 12:39 PM > To: [email protected] > Subject: [flexcoders] Selecting which Child Components to add at runtime > > > > I want to add views to a ViewStack at runtime by selecting from an > expanding table of Custom Components. > > As the simplified code below shows, I can figure out how to add any > one and hard code it. But the addChild method of the ViewStack > seems to require that you know ahead of time which component you > want to add. I can not find in the docs or online a way to make > this dynamic. > > In other words, when I define the new component view to add to the > view stack.... > { > var canCustView:Comp1 = new Comp1(); > canCustView.label = "Custom " + cbCompList.selectedItem.label; > vsComps.addChild(canCustView); > } > ...I want to choose at runtime whether to instantiate views from > Comp1, Comp17, or Comp53, etc. > > Any ideas how to accomplish this? Thanks for your thoughts! > > Here is the simplified code. > > <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml > <http://www.adobe.com/2006/mxml> " > layout="absolute" > xmlns:comp="components.*"> > > <mx:Script> > <![CDATA[ > import components.*; > > private function fAddView():void > { > var canHardView:TestComp = new TestComp(); > canHardView.label = "Hard-Code View2"; > vsComps.addChild(canHardView); > } > > private function fAddCustomView():void > { > var canCustView:Comp1 = new Comp1(); > canCustView.label = "Custom " + > cbCompList.selectedItem.label; > vsComps.addChild(canCustView); > } > > ]]> > </mx:Script> > > <mx:Button x="25" y="36" label="Add Hard-Coded View" > click="fAddView()"/> > > <mx:Button x="25" y="68" label="Add Custom Component" > click="fAddCustomView()"/> > > <mx:ComboBox id="cbCompList" x="203" y="67"> > <mx:dataProvider> > <mx:Array id="arrCompList"> > <mx:Object label="Component1" data="Comp1"/> > <mx:Object label="Component2" data="Comp2"/> > <mx:Object label="Component3" data="Comp3"/> > <mx:Object label="Component4" data="Comp4"/> > <mx:Object label="Component5" data="Comp5"/> > </mx:Array> > </mx:dataProvider> > </mx:ComboBox> > > <mx:TabBar direction="vertical" dataProvider="{vsComps}" > labelField="app" y="108" x="27"/> > > <mx:ViewStack id="vsComps" width="50%" height="50%" > x="200" y="108" backgroundColor="#FFFFC9"> > > <mx:Canvas id="vView1" label="View1" verticalScrollPolicy="off" > horizontalScrollPolicy="off"> > <mx:Label x="68" y="2" width="130" text="Initial View -- > View 1"/> > <mx:Label id="lblViewName" x="68" y="32" width="68" > text="Input:"/> > <mx:TextInput id="txtiInput" x="136" y="32"/> > </mx:Canvas> > </mx:ViewStack> > > </mx:Application> >

