【问题标题】:Flex 4.6 setting selectedChild= with a bound Variable from a ComponentFlex 4.6 设置 selectedChild= 与来自组件的绑定变量
【发布时间】:2014-09-30 16:54:29
【问题描述】:

我收到以下错误:

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

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

这是我的视图堆栈代码,位于我的主应用程序中:

<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');"/>

当我将 viewstack 导航器内容库设置为 selectIndex 并使用整数时,我得到了这个工作......工作正常。但我宁愿通过导航器内容的 id 来调用它们,这样它们就不必按特定顺序(如果可能的话)。或者也许有更好的方法来解决这个问题...感谢您的帮助!

【问题讨论】:

    标签: actionscript-3 flash apache-flex flex4.6


    【解决方案1】:

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

    编辑:正如您在 cmets 中所说,您可以使用 click="mainViewStack.selectedChild=userEvents" 来根据需要设置视图。

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

    click="mainViewStack.selectedChild='userEvents'"
    

    【讨论】:

    • 不确定有什么区别(“将实际视图作为其参数,而不是视图的名称”),我可以用这个选择视图,例如:click="mainViewStack.selectedChild= userEvents”(但仅当我在主应用程序中使用它时)。我想我只是对此感到困惑......我一周前才开始使用 Flex 4.6 -.-;
    • mainViewStack.selectedChild 需要是视图类型变量。你得到一个错误是因为你传入了一个字符串——即只是你想要的视图的 name
    • 好的,谢谢,这有点清楚了。然后我将不得不去研究那个变量类型并弄清楚我将如何做到这一点。再次感谢。
    • 响应您的编辑:“但是,您在问题中的代码是这样的:click="mainViewStack.selectedChild='userEvents'"” 除非我添加了单引号,否则它将不起作用,所以假设我需要它们。并且“不起作用”是指特定行显示一个错误,当我添加引号时该错误消失了......但我明白你在说什么......它是按字面意思命名的。
    猜你喜欢
    • 2011-08-04
    • 2010-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多