Dear Group, Somewhat of a newbie and trying to do something that I think should be possible. I have my application below, that when I press a button in the viewstack it changes the Skinnable container "stuff" within the given navigation container to my custom component defined. So that works well. What I want to be able to do is within my custom component, I want to change the "stuff" again in the navigation container based on a button within the custom component to another custom component. To clarify I want to swap out custom component A with custom component B.
Is there a way so that I can define a variable that is used instead of naming the component as in this snippet: <s:NavigatorContent label="Clients" icon="@Embed(source='/assets/png/32x32/globe.png')" width="100%" height="100%" id="Information"> <s:SkinnableContainer width="100%" height="100%"> <MyComps1:ClientsMain/> </s:SkinnableContainer> </s:NavigatorContent> Rather do this: <s:NavigatorContent label="Clients" icon="@Embed(source='/assets/png/32x32/globe.png')" width="100%" height="100%" id="Information"> <s:SkinnableContainer width="100%" height="100%"> <MyComps1:somekindavariabledefined/> </s:SkinnableContainer> </s:NavigatorContent> Then based on the click of another button it changes the value of the variable? <s:Button x="105" y="111" label="Main Configuration" width="148" height="31" click="changecomponentvariableA" /> <s:Button x="106" y="206" label="Main Reports" width="148" height="29" click="changecomponentvariableB" /> ################Full Main Application################# <?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/halo" minWidth="1024" minHeight="768" currentState="Base" xmlns:MyComps1="com.One.Views.*" xmlns:MyComps2="com.Two.Views.*" xmlns:MyComps3="com.Three.Views.*" xmlns:MyComps4="com.Four.Views.*" initialize="initCollections()" xmlns:mx2="library://ns.adobe.com/flex/mx"> <s:states> <s:State name="Base"/> </s:states> <fx:Style> @namespace s "library://ns.adobe.com/flex/spark"; @namespace mx "library://ns.adobe.com/flex/halo"; .buttonBarButtonStyles { skin: ClassReference("skins.SkinMainButtonBar"); } </fx:Style> <fx:Declarations> <!-- Place non-visual elements (e.g., services, value objects) here --> </fx:Declarations> <fx:Script> <![CDATA[ import skins.SkinMainButtonBar; import mx.events.MenuEvent; import mx.controls.Alert; import mx.collections.*; import mx.managers.PopUpManager; import mx.controls.Alert; [Bindable] public var menuBarCollection:XMLListCollection; private var menubarXML:XMLList = <> <menuitem label="Menu1" data="top"> <menuitem label="MenuItem 1-A" data="1A"/> <menuitem label="MenuItem 1-B" data="1B"/> </menuitem> <menuitem label="Menu2" data="top"> <menuitem label="MenuItem 2-A" type="check" data="2A"/> <menuitem type="separator"/> <menuitem label="MenuItem 2-B" > <menuitem label="SubMenuItem 3-A" type="radio" groupName="one" data="3A"/> <menuitem label="SubMenuItem 3-B" type="radio" groupName="one" data="3B"/> </menuitem> </menuitem> <menuitem label="Menu3" data="top"/> </>; // Event handler to initialize the MenuBar control. private function initCollections():void { menuBarCollection = new XMLListCollection(menubarXML); } ]]> </fx:Script> <s:SkinnableContainer x="0" y="0" width="100%" height="100" left="10" right="10" top="10"> <s:Rect id="background" left="0" top="0" right="0" bottom="0" alpha="1" radiusX="1" radiusY="1"> <s:fill> <s:BitmapFill source="@Embed(source='/assets/logo_src_icon_slice.png')"/> </s:fill> </s:Rect> <mx2:Image source="@Embed(source='/assets/Logo.png')" x="1" top="1"/> <mx2:ButtonBar height="50" horizontalGap="10" dataProvider="{viewstack1}" paddingBottom="5" paddingTop="2" paddingLeft="5" paddingRight="5" styleName="buttonBarButtonStyles" buttonStyleName="buttonBarButtonStyles" firstButtonStyleName="buttonBarButtonStyles" lastButtonStyleName="buttonBarButtonStyles" x="224" y="5" width="100%"/> <s:SkinnableContainer x="80" y="73" width="100%" height="27"> <mx2:Image source="@Embed(source='/assets/Edition.png')" x="286" height="25" right="5" top="2"/> <mx2:MenuBar left="1" x="19" y="5" dataProvider="{ menuBarCollection }" labelField="@label"></mx2:MenuBar> </s:SkinnableContainer> </s:SkinnableContainer> <s:SkinnableContainer y="110" width="100%" height="100%"> <mx2:ViewStack id="viewstack1" paddingLeft="10" paddingRight="10" width="100%" height="100%"> <s:NavigatorContent label="Clients" icon="@Embed(source='/assets/png/32x32/globe.png')" width="100%" height="100%" id="Information"> <s:SkinnableContainer width="100%" height="100%"> <MyComps1:ClientsMain/> </s:SkinnableContainer> </s:NavigatorContent> <s:NavigatorContent label="Users" icon="@Embed(source='/assets/png/32x32/user.png')" width="100%" height="100%" id="Auto"> <s:SkinnableContainer width="100%" height="100%"> <MyComps2:UsersMain/> </s:SkinnableContainer> </s:NavigatorContent> <s:NavigatorContent label="Numbers" icon="@Embed(source='/assets/png/32x32/numbers.png')" width="100%" height="100%" id="SystemWide"> <s:SkinnableContainer width="100%" height="100%"> <MyComps3:NumbersMain/> </s:SkinnableContainer> </s:NavigatorContent> <s:NavigatorContent label="Reports" icon="@Embed(source='/assets/png/32x32/report.png')" width="100%" height="100%" id="Center" includeInLayout="true"> <s:SkinnableContainer width="100%" height="100%"> <MyComps4:ReportsMain/> </s:SkinnableContainer> </s:NavigatorContent> </mx2:ViewStack> ###########MyComp ClientsMain Component########3 <?xml version="1.0" encoding="utf-8"?> <s:Group xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/halo" width="100%" height="100%"> <fx:Declarations> <!-- Place non-visual elements (e.g., services, value objects) here --> </fx:Declarations> <s:Button x="105" y="111" label="Main Configuration" width="148" height="31" click="changecomponentvariableA" /> <s:Button x="106" y="206" label="Main Reports" width="148" height="29" click="changecomponentvariableB" /> <s:Button x="106" y="161" label="Main Maintenance" width="148" height="29" click="changecomponentvariableC" /> </s:Group>