Apache flex 更改动态创建状态的子级

Apache flex 更改动态创建状态的子级,apache-flex,dynamic,datagrid,flex3,states,Apache Flex,Dynamic,Datagrid,Flex3,States,我正在构建一个Xml驱动的应用程序。 我在一个单独的actionscript类中创建新状态。 这些状态都包含一个数据网格。 我可以在Main.mxml中切换状态 但现在我想访问DataGrid的某些子级。在本例中,我希望通过Main.mxml中的按钮切换GridItems的可见性 如何访问并将其应用于已创建的状态? 我试图创建RemoveChild并覆盖/将其推送到状态。 我所做的只是在最后一个状态下删除整个GridRow,但每个状态下都应该只有一个GridItem 非常感谢你的帮助 扭转你的问

我正在构建一个Xml驱动的应用程序。 我在一个单独的actionscript类中创建新状态。 这些状态都包含一个数据网格。 我可以在Main.mxml中切换状态

但现在我想访问DataGrid的某些子级。在本例中,我希望通过Main.mxml中的按钮切换GridItems的可见性

如何访问并将其应用于已创建的状态? 我试图创建RemoveChild并覆盖/将其推送到状态。 我所做的只是在最后一个状态下删除整个GridRow,但每个状态下都应该只有一个GridItem


非常感谢你的帮助

扭转你的问题。不要试图将信息推入状态,让状态在需要时获取信息


在每个状态下添加一个绑定,以检查按钮的状态,并自行执行removeChild逻辑。

好的,我一定要试试你的建议。我用自己的方式解决了这个问题,但我想这相当复杂: 当创建状态时,我推送数组中的每个GridItem,并创建一个getFunction返回数组,这样Main.mxml就可以访问它。 Main.mxml中的toggler函数如下所示:

_gridItemArray = theStateClass.getGridItemArray();

if(_buttonToggler == false)
{
      for each(_gridItemArray.child in _gridItemArray)
  {
    _gridItemArray.child.visible = false;
  }
 _buttonToggler = true;
}

else
{
   for each(_gridItemArray.child in _gridItemArray)
   {
      _gridItemArray.child.visible = true;
   }
       _buttonToggler = false;
    }

是否将相同的RemoveChild对象添加到每个状态?我还没有尝试过这个方法,但是如果RemoveChild与其他UI子级受相同的规则约束,将其添加到第二个状态将使其从上一个状态中删除。