改变动态创造状态的孩子

时间:2009-11-30 03:36:40

标签: flex dynamic datagrid flex3 states

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

但是现在我想访问DataGrid的某些子节点。在这种情况下,我想从Main.mxml中的Button切换GridItems的可见性。

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

非常感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

扭转您的问题。不要尝试将信息推送到状态,让状态在需要时获取信息。

在每个状态中添加一个绑定以检查按钮的状态并执行removeChild逻辑本身。

答案 1 :(得分:0)

好的,我肯定要尝试你的建议。我按照自己的方式解决了这个问题,但我觉得相当复杂: 我在创建状态时将每个GridItem推送到数组中,并创建一个返回数组的getFunction,因此Main.mxml可以访问它。 Main.mxml中的toggler-function看起来像这样:

_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;
    }