Modules work only with Flex 2.0.1
RSLs mentioned here only with F3B2!
What kind of version are you running?

Keep in mind you can link SWC anly at compile time, if somebody think
I'm wrong, please correct me. SWFs you may load at run time for sure.
But can you execute code from them - I doubt.

My choice will be modules.

BTW RSL it is a bit different story - RSL servers for share COMMON
code bettween multiple application(modules)

--- In flexcoders@yahoogroups.com, Jehanzeb Musani <[EMAIL PROTECTED]>
wrote:
>
> Hello,
> 
> I want to design a Flex Web Application that would
> load features (flex components) hosted in different
> SWF or SWC files at runtime. The prototype of that
> application can be viewed on the url below.
> 
> http://80.227.133.21/FlexTestInternal/ApplicationLayoutManager.html
> 
> The actual application needs to call a webservice that
> will return an xml. A sample xml is attached herewith.
> The xml contains the layout description and the names
> of feature (flex components) to be loaded. The layout
> and features varies for different users.
> 
> I am thinking about deploying features in separate
> SWF/SWC files so that only the required files will be
> download at runtime. Can you please let me know the
> following in this regard?
> 
> 1. How can I package individual features in separate
> SWF/SWF file using Flex Builder2.
> 
> 2. How can I load the those separate SWF/SWC files at
> runtime from the main SWF file?
> 
> 3. In case of separate SWF/SWC files for features,
> will the Flex library be included in every SWF/SWC
> file?
> 
> I am also attaching the code of the prototype
> application.
> 
> Regards,
> Jehanzeb
> 
> __________________________________________________
> Do You Yahoo!?
> Tired of spam?  Yahoo! Mail has the best spam protection around 
> http://mail.yahoo.com 
> <?xml version="1.0" encoding="utf-8"?>
> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml";
layout="absolute"
>        creationComplete="OnApplicationInitialize()">
>        
>        <mx:Script>
>               <![CDATA[
>                       import mx.containers.VBox;
>                       import mx.containers.TabNavigator;
>                       import mx.containers.Canvas;
>                       import mx.controls.Label;
>                       import mx.containers.HDividedBox;
>                       import mx.containers.Panel;
>                       import mx.containers.VDividedBox;
>                       import mx.core.IContainer;
>                       import mx.utils.StringUtil;
>                       import mx.controls.Alert;
>                       import mx.rpc.events.ResultEvent;
>                       import mx.rpc.events.FaultEvent;
>                       private function OnApplicationInitialize() : void
>                       {
>                               
> this.ajaxServiceInvokerProxy.addEventListener(FaultEvent.FAULT,
this.OnError);
>                       
this.ajaxServiceInvokerProxy.addEventListener(ResultEvent.RESULT,
this.OnResultArrived);
>                               
>                               
> this.ajaxServiceInvokerProxy.GetApplicationLayout.send();
>                       }
>                       
>                       private function OnError(event:FaultEvent) : void
>                       {
>                               var message:String;
>                               message = StringUtil.substitute('Error Type: 
> [0]. Error
Message: [1].', "A", "B");
>                               mx.controls.Alert.show(message, "WebService 
> Error");
>                       }
>                       
>                       private function OnResultArrived(event:ResultEvent) : 
> void
>                       {
>                               var applicationLayout:String = 
> event.result.toString();
>                               var applicationLayoutXml:XML = new 
> XML(applicationLayout);
>                               
>                               this.LayoutPanels(applicationLayoutXml);
>                       }
>                       
>                       private function LayoutPanels(applicationLayoutXml:XML) 
> : void
>                       {
>                               var panelList:Object =
applicationLayoutXml.child("Pages");//.child("Pages").child("Page");//.Panels;
>                               //panelList = panelList.child("Pages");
>                               panelList = 
> panelList.child("Page").child("Panels");
>                               
> //mx.controls.Alert.show(panelList.toXMLString(), "WebService
Result");
>                               //this.txtPanelList.text = 
> panelList.toXMLString();
>                               
>                               var panel:Panel = new Panel();
>                               panel.percentWidth = 100;
>                               panel.percentHeight = 100;
>                               panel.title = "Main Panel";
>                               this.addChild(panel);
>                               
>                               var panelXml:XML = null;
>                               for each(panelXml in panelList.children())
>                               {
>                                       if(panelXml.name() == "HorizontalSplit")
>                                       {
>                                               
> this.ProcessHorizontalPanel(panel, panelXml);
>                                       }
>                                       
>                                       else if(panelXml.name() == 
> "VerticalSplit")
>                                       {
>                                               
> this.ProcessVerticalPanel(panel, panelXml);
>                                       }
>                               }
>                       }
>                       
>                       private function
ProcessHorizontalPanel(parentPanel:DisplayObjectContainer,
horizontalPanelXml:XML) : void
>                       {
>                               var horizontalPanel:VDividedBox = new 
> VDividedBox();
>                               horizontalPanel.percentWidth = 100;
>                               horizontalPanel.percentHeight = 100;
>                               parentPanel.addChild(horizontalPanel);
>                               
>                               var topPanel:XMLList = 
> horizontalPanelXml.TopPanel;
>                               var bottomPanel:XMLList = 
> horizontalPanelXml.BottomPanel;
>                               
>                               this.ProcessChildPanel(horizontalPanel, 
> topPanel, true);
>                               this.ProcessChildPanel(horizontalPanel, 
> bottomPanel, true);     
>                       }
>                       
>                       private function
ProcessVerticalPanel(parentPanel:DisplayObjectContainer,
verticalPanelXml:XML) : void
>                       {
>                               var verticalPanel:HDividedBox = new 
> HDividedBox();
>                               verticalPanel.percentWidth = 100;
>                               verticalPanel.percentHeight = 100;
>                               parentPanel.addChild(verticalPanel);
>                               
>                               var leftPanel:XMLList = 
> verticalPanelXml.LeftPanel;
>                               var rightPanel:XMLList = 
> verticalPanelXml.RightPanel;
>                               
>                               this.ProcessChildPanel(verticalPanel, 
> leftPanel, false);
>                               this.ProcessChildPanel(verticalPanel, 
> rightPanel, false);
>                       }
>                       
>                       private function
ProcessChildPanel(parentPanel:DisplayObjectContainer,
panelXmlList:XMLList, isHorizontalPanel:Boolean) : void
>                       {
>                               //var childPanel:Panel = new Panel();
>                               var sizePercent:int =
int(panelXmlList.attribute("SizePercent").toString());
>                               var childPanel:Panel = new HeaderLessPanel();
>                               
>                               if(isHorizontalPanel)
>                               {
>                                       childPanel.percentWidth = 100;
>                                       childPanel.percentHeight = sizePercent;
>                                       childPanel.setStyle("backgroundColor", 
> 0x4CAB32);
>                               }
>                               
>                               else
>                               {
>                                       childPanel.percentWidth = sizePercent;
>                                       childPanel.percentHeight = 100;
>                                       childPanel.setStyle("backgroundColor", 
> 0xAE1414);
>                               }
>                               parentPanel.addChild(childPanel);
>                               
>                               var panelXml:XML = null;
>                               for each(panelXml in panelXmlList.children())
>                               {
>                                       if(panelXml.name() == "HorizontalSplit")
>                                       {
>                                               
> this.ProcessHorizontalPanel(childPanel, panelXml);
>                                       }
>                                       
>                                       else if(panelXml.name() == 
> "VerticalSplit")
>                                       {
>                                               
> this.ProcessVerticalPanel(childPanel, panelXml);
>                                       }
>                                       
>                                       else if(panelXml.name() == 
> "CompositeFeature")
>                                       {
>                                               
> this.LayoutCompositeFeature(childPanel, panelXml);
>                                       }
>                                       
>                                       else
>                                       {
>                                               var label:Label = new Label();
>                                               label.text = panelXml.name();
>                                               childPanel.addChild(label);
>                                       }
>                               }
>                       }
>                       
>                       private function
LayoutCompositeFeature(parentPanel:DisplayObjectContainer,
compositePanelXml:XML) : void
>                       {
>                               var featureList:XMLList = 
> compositePanelXml.Features;
>                               var tabbedPanel:TabNavigator = new 
> TabNavigator();
>                               tabbedPanel.percentHeight = 100;
>                               tabbedPanel.percentWidth = 100;
>                               
>                               var featureXml:XML = null;
>                               for each(featureXml in featureList.children())
>                               {
>                                       var vbox:VBox = new VBox();
>                                       vbox.label = featureXml.name();
>                                       vbox.percentHeight = 100;
>                                       vbox.percentWidth = 100;
>                                       
>                                       var label:Label = new Label();
>                                       label.text = featureXml.name();
>                                       vbox.percentHeight = 100;
>                                       vbox.percentWidth = 100;
>                                       
>                                       vbox.addChild(label);
>                                       tabbedPanel.addChild(vbox);
>                               }
>                               
>                               parentPanel.addChild(tabbedPanel);
>                       }
>               ]]>
>        </mx:Script>
>       
>       <mx:WebService id="ajaxServiceInvokerProxy" 
>          
wsdl="http://192.168.0.101/AjaxServiceInvoker2/AjaxServiceInvoker.asmx?wsdl";
>           useProxy="false">
>           <mx:operation name="GetApplicationLayout">
>       </mx:operation>
>       </mx:WebService>        
>       
>       <!--<mx:TextArea id="txtPanelList" width="100%" height="100%"/>-->
> </mx:Application>
> 
> <?xml version="1.0" encoding="UTF-8"?>
> <Workspace Name="Default">
>   <Pages>
>     <Page Name="Page 1" ActivePage="True">
>       <Panels>
>         <HorizontalSplit IsMoveable="False">
>           <TopPanel SizePercent="92">
>             <VerticalSplit IsMoveable="False">
>               <LeftPanel SizePercent="26">
>                 <HorizontalSplit IsMoveable="False">
>                   <TopPanel SizePercent="54">
>                     <HorizontalSplit IsMoveable="False">
>                       <TopPanel SizePercent="50">
>                         <CompositeFeature Layout="TabbedLayout">
>                           <Features>
>                             <Feature
Type="Sharesoft.WhiteWolf.Client.Desktop.MarketInformationFeatures.Notification.NotificationFeature"
Assembly="Sharesoft.WhiteWolf.Client.MarketInformationFeatures,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
Id="0f48f736-b0e2-480b-a90b-f1d89dadfe49" Name="Notification">
>                               <State />
>                               <Links />
>                             </Feature>
>                             <Feature
Type="Sharesoft.WhiteWolf.Client.Desktop.MarketInformationFeatures.NewsReader.NewsReaderFeature"
Assembly="Sharesoft.WhiteWolf.Client.MarketInformationFeatures,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
Id="be5589d0-83c3-4de3-a6a0-b10dcc4936d1" Name="News">
>                               <State />
>                               <Links />
>                             </Feature>
>                           </Features>
>                         </CompositeFeature>
>                       </TopPanel>
>                       <BottomPanel SizePercent="50">
>                         <Feature
Type="Sharesoft.WhiteWolf.Client.Desktop.MarketInformationFeatures.MarketIndex.MarketIndexFeature"
Assembly="Sharesoft.WhiteWolf.Client.MarketInformationFeatures,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
Id="af218173-c515-4a45-82e6-18d4bfc1fd77" Name="Market Index Summary">
>                           <State />
>                           <Links>
>                             <Link
SourceId="af218173-c515-4a45-82e6-18d4bfc1fd77"
DestinationId="055996b5-ae76-40fe-9648-a129f32952ba" />
>                           </Links>
>                         </Feature>
>                       </BottomPanel>
>                     </HorizontalSplit>
>                   </TopPanel>
>                   <BottomPanel SizePercent="46">
>                     <Feature
Type="Sharesoft.WhiteWolf.Client.Desktop.MarketInformationFeatures.Quote.QuoteFeature"
Assembly="Sharesoft.WhiteWolf.Client.MarketInformationFeatures,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
Id="41089048-3751-4471-a86d-c75070b237f6" Name="Quote">
>                       <State />
>                       <Links />
>                     </Feature>
>                   </BottomPanel>
>                 </HorizontalSplit>
>               </LeftPanel>
>               <RightPanel SizePercent="74">
>                 <HorizontalSplit IsMoveable="False">
>                   <TopPanel SizePercent="22">
>                     <CompositeFeature Layout="TabbedLayout">
>                       <Features>
>                         <Feature
Type="Sharesoft.WhiteWolf.Client.Desktop.MarketInformationFeatures.MarketByOrder.MarketByOrderFeature"
Assembly="Sharesoft.WhiteWolf.Client.MarketInformationFeatures,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
Id="703c9c4e-a0ef-4192-8948-9a150348faa5" Name="Market By Order">
>                           <State />
>                           <Links />
>                         </Feature>
>                         <Feature
Type="Sharesoft.WhiteWolf.Client.Desktop.MarketInformationFeatures.MarketByPrice.MarketByPriceFeature"
Assembly="Sharesoft.WhiteWolf.Client.MarketInformationFeatures,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
Id="df9b14bd-941c-4147-bc62-379c481d327f" Name="Market By Price">
>                           <State />
>                           <Links />
>                         </Feature>
>                         <Feature
Type="Sharesoft.WhiteWolf.Client.Desktop.MarketInformationFeatures.TopGainer.TopGainerFeature"
Assembly="Sharesoft.WhiteWolf.Client.MarketInformationFeatures,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
Id="bcc395a5-5708-4b6c-97d5-d40713d7af8d" Name="Top Gainers">
>                           <State />
>                           <Links />
>                         </Feature>
>                         <Feature
Type="Sharesoft.WhiteWolf.Client.Desktop.MarketInformationFeatures.TopLooser.TopLooserFeature"
Assembly="Sharesoft.WhiteWolf.Client.MarketInformationFeatures,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
Id="7e883537-72c5-4de4-ba36-025ede60b503" Name="Top Loosers">
>                           <State />
>                           <Links />
>                         </Feature>
>                         <Feature
Type="Sharesoft.WhiteWolf.Client.Desktop.MarketInformationFeatures.TopMover.TopMoverFeature"
Assembly="Sharesoft.WhiteWolf.Client.MarketInformationFeatures,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
Id="a77877cf-a2eb-4c40-9f5b-250978f996ca" Name="Most Active">
>                           <State />
>                           <Links />
>                         </Feature>
>                         <Feature
Type="Sharesoft.WhiteWolf.Client.Desktop.MarketInformationFeatures.IndexDetail.IndexDetailFeature"
Assembly="Sharesoft.WhiteWolf.Client.MarketInformationFeatures,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
Id="055996b5-ae76-40fe-9648-a129f32952ba" Name="Index Detail">
>                           <State />
>                           <Links />
>                         </Feature>
>                       </Features>
>                     </CompositeFeature>
>                   </TopPanel>
>                   <BottomPanel SizePercent="78">
>                     <CompositeFeature Layout="TabbedLayout">
>                       <Features>
>                         <Feature
Type="Sharesoft.WhiteWolf.Client.Desktop.MarketInformationFeatures.MarketView.MarketViewFeature"
Assembly="Sharesoft.WhiteWolf.Client.MarketInformationFeatures,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
Id="1a5ac357-39fe-4097-b7da-d5b966685d7c" Name="Market View">
>                           <State />
>                           <Links>
>                             <Link
SourceId="1a5ac357-39fe-4097-b7da-d5b966685d7c"
DestinationId="41089048-3751-4471-a86d-c75070b237f6" />
>                           </Links>
>                         </Feature>
>                         <Feature
Type="Sharesoft.WhiteWolf.Client.Desktop.MarketInformationFeatures.WatchList.WatchListFeature"
Assembly="Sharesoft.WhiteWolf.Client.MarketInformationFeatures,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
Id="680ad294-922b-46aa-8088-10f21e9d1d0e" Name="WatchList">
>                           <State />
>                           <Links />
>                         </Feature>
>                         <Feature
Type="Sharesoft.WhiteWolf.Client.Desktop.MarketInformationFeatures.Search.SearchFeature"
Assembly="Sharesoft.WhiteWolf.Client.MarketInformationFeatures,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
Id="1d7b2b7c-b629-4973-980e-4a4e38051cd3" Name="Search Symbols">
>                           <State />
>                           <Links />
>                         </Feature>
>                         <Feature
Type="Sharesoft.WhiteWolf.Client.Desktop.MarketInformationFeatures.AlertSetup.AlertSetupFeature"
Assembly="Sharesoft.WhiteWolf.Client.MarketInformationFeatures,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
Id="2cf0c325-1870-4c8a-8d78-91a622f066a3" Name="AlertSetup">
>                           <State />
>                           <Links />
>                         </Feature>
>                         <Feature
Type="Sharesoft.WhiteWolf.Client.Desktop.MarketInformationFeatures.Analysis.AnalysisFeature"
Assembly="Sharesoft.WhiteWolf.Client.MarketInformationFeatures,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
Id="e06c57d4-2d5e-463b-99f8-bbc622534f82" Name="Analysis">
>                           <State />
>                           <Links />
>                         </Feature>
>                         <Feature
Type="Sharesoft.WhiteWolf.Client.Desktop.MarketInformationFeatures.TradeHistory.TradeHistoryFeature"
Assembly="Sharesoft.WhiteWolf.Client.MarketInformationFeatures,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
Id="5c0b0ad7-fd26-48e7-a5d7-47a7b3ef7166" Name="Trade History">
>                           <State />
>                           <Links />
>                         </Feature>
>                         <Feature
Type="Sharesoft.WhiteWolf.Client.Desktop.MarketInformationFeatures.LiveChart.LiveChartFeature"
Assembly="Sharesoft.WhiteWolf.Client.MarketInformationFeatures,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
Id="a486b8b3-c363-47cf-8d07-728e6508aa2c" Name="Live Chart">
>                           <State />
>                           <Links />
>                         </Feature>
>                       </Features>
>                     </CompositeFeature>
>                   </BottomPanel>
>                 </HorizontalSplit>
>               </RightPanel>
>             </VerticalSplit>
>           </TopPanel>
>           <BottomPanel SizePercent="8">
>             <Feature
Type="Sharesoft.WhiteWolf.Client.Desktop.MarketInformationFeatures.Ticker.TickerFeature"
Assembly="Sharesoft.WhiteWolf.Client.MarketInformationFeatures,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
Id="be3538c9-cd1d-4304-82b6-50af01436875" Name="Ticker">
>               <State />
>               <Links />
>             </Feature>
>           </BottomPanel>
>         </HorizontalSplit>
>       </Panels>
>     </Page>
>   </Pages>
> </Workspace>
>


Reply via email to