【问题标题】:changing children of dynamic created states改变动态创建状态的孩子
【发布时间】:2010-12-21 12:33:20
【问题描述】:

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

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

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

非常感谢您的帮助!

【问题讨论】:

  • 您是否将相同的 RemoveChild 对象添加到每个状态?我还没有尝试过,但如果 R​​emoveChild 受与其他 UI 子级相同的规则约束,则将其添加到第二个状态会将其从前一个状态中删除。

标签: apache-flex dynamic datagrid flex3 states


【解决方案1】:

好的,我一定要试试你的建议。我以我的方式解决了它,但我猜相当复杂: 创建状态时,我将每个 GridItem 推入数组中,并创建一个返回数组的 getFunction,因此 Main.mxml 可以访问它。 Main.mxml 中的切换函数如下所示:

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

【讨论】:

    【解决方案2】:

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

    在每个状态中添加一个绑定来检查按钮的状态并自己执行 removeChild 逻辑。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-14
      • 1970-01-01
      • 2015-06-26
      • 1970-01-01
      相关资源
      最近更新 更多