Actionscript 3 Flex 4.6使用组件中的绑定变量设置selectedChild=

Actionscript 3 Flex 4.6使用组件中的绑定变量设置selectedChild=,actionscript-3,flash,apache-flex,flex4.6,Actionscript 3,Flash,Apache Flex,Flex4.6,我得到以下错误: 1067:将String类型的值隐式强制转换为不相关的mx类型。core:INavigatorContent 它位于我的主应用程序中设置selectedChild的行中= 以下是我在主应用程序中的viewstack代码: <mx:ViewStack id="mainViewStack" width="100%" height="100%" selectedChild="{topView

我得到以下错误:

1067:将String类型的值隐式强制转换为不相关的mx类型。core:INavigatorContent

它位于我的主应用程序中设置selectedChild的行中=

以下是我在主应用程序中的viewstack代码:

<mx:ViewStack id="mainViewStack"
                      width="100%" height="100%"
                      selectedChild="{topViewControlComponent.selectedChild}">

我的组件包含以下内容:

[Bindable]
            public var selectedChild:String;

            protected function changeView2(child:String):void
            {
                this.selectedChild = child;
            }

<s:Button styleName="controlBarButton"
              label="Events"
              click="changeView2('userEvents');"/>
[Bindable]
公共变量selectedChild:String;
受保护的函数changeView2(子:字符串):无效
{
this.selectedChild=child;
}

当我将viewstack navigator内容库设置为selectIndex并使用一个整数时,我实现了这一点……效果很好。但是我宁愿通过导航器内容的id来调用它们,这样它们就不必按特定的顺序排列,如果可能的话。或者也许有更好的方法…谢谢你的帮助

ViewStack上的
selectedChild
属性将实际视图作为其参数,而不是视图的名称。将selectedIndex与int一起使用会很好,或者您可以在主应用程序中调用在id和视图实例之间映射的函数

编辑:正如您在评论中所说,您可以使用
单击=“mainViewStack.selectedChild=userEvents”
根据需要设置视图

但是,问题中的代码是这样的:

click="mainViewStack.selectedChild='userEvents'"

不确定区别是什么(“将实际视图作为其参数,而不是视图的名称”),我可以使用此选项选择视图,例如:click=“mainViewStack.selectedChild=userEvents”(但仅当我在主应用程序中使用它时)。我想我只是被这个弄糊涂了……我一周前才开始使用Flex4.6
mainViewStack。selectedChild
必须是视图类型变量。您得到一个错误是因为您传入了一个字符串——即,只是您想要的视图的名称。好的,谢谢,这会稍微澄清一点。我必须去研究那个变量类型,然后找出我将如何做到这一点。再次感谢。在回答您的编辑:“但是,问题中的代码是这样的:单击=“mainViewStack.selectedChild='userEvents'””除非添加单引号,否则它不会工作,因此假设我需要它们。我所说的“行不通”是指,当我添加引号时,特定的一行显示了一个错误……但我明白你的意思……它是字面上的名称。