如何加载模块来控制面板,vbox等+ flex

时间:2009-01-21 07:38:15

标签: flex flex3

我是这个flex的新手。任何人都可以解决我的问题吗?这是我的查询:我有一个页面分为3个部分,如顶部,左侧,中间位置。在中间位置-panel和combobox在那里。我想将模块加载到中间位置,就像面板一样。我有组合框,当我选择任何项目时,我正在使用自定义模块加载器控件将模块加载到该面板。到这里它工作正常。我的问题:我从组合框中选择一个选项,它显示了一个模块(sam1)。当我点击(sam1)时,它应该在同一个位置(而不是sam1-sam2)打开另一个模块(sam2)。那么你能告诉我你如何解决它的想法吗?

1 个答案:

答案 0 :(得分:0)

听起来你需要的是将所有模块放入ViewStack。然后你可以选择:

  • 您可以简单地绑定到组合框中的索引(或组合框数据指定的索引,就像我在下面的示例中所示)。
  • 您可以获取ComboBox的change event并手动更改ViewStack的selectedChild
  • 你可以

类似的东西:

<?xml version="1.0"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">

    <mx:Script>
        <![CDATA[
            [Bindable]
            public var modules:Array = 
                [ {label:"Module A", moduleIndex:0}, 
                  {label:"Module B", moduleIndex:1}, 
                  {label:"Mobule C", moduleIndex:2} ]);
        ]]>
    </mx:Script>

    <mx:ComboBox dataProvider="{modules}" id="modulesCombobox" />

    <mx:ViewStack id="modulesViewStack" creationPolicy="auto" 
            selectedIndex="{modulesCombobox.selectedItem.moduleIndex}">

        <mx:ModuleLoader id="moduleA" url="{'views/ModuleA.swf}" /> 
        <mx:ModuleLoader id="moduleB" url="{'views/ModuleB.swf}" /> 
        <mx:ModuleLoader id="moduleC" url="{'views/ModuleC.swf}" /> 
    </mx:ViewStack>
</mx:Application>