0

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

4

1 回答 1

0

听起来您需要将所有模块放入ViewStack中。然后你有一个选择:

  • 您可以简单地绑定到组合框中的索引(或由组合框数据指定的索引,如下例所示)。
  • 您可以拾取 ComboBox 的更改事件并手动更改 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>
于 2009-02-17T14:34:35.220 回答