Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache flex Flex:通过导航层次结构访问子对象_Apache Flex_User Interface_Hierarchy - Fatal编程技术网

Apache flex Flex:通过导航层次结构访问子对象

Apache flex Flex:通过导航层次结构访问子对象,apache-flex,user-interface,hierarchy,Apache Flex,User Interface,Hierarchy,我有一个通用功能来构建控件行(每行包括滑块、单选按钮、重置按钮、文本显示)等,还有一些功能可以基于这些来更改基础数据 因为我不想为每一行编写特定的代码,所以我编写了一些代码,通过这些代码我可以检测出有mouseevent的行,尽管该行可以访问每个单独的控件 使用的层次结构是titleWindow(弹出窗口的一部分)->可蒙皮容器->HGroup->control 跟踪radiobutton时,我得到的路径如下所示:Electric\u Modify.titleIndowskin2620.\u t

我有一个通用功能来构建控件行(每行包括滑块、单选按钮、重置按钮、文本显示)等,还有一些功能可以基于这些来更改基础数据

因为我不想为每一行编写特定的代码,所以我编写了一些代码,通过这些代码我可以检测出有mouseevent的行,尽管该行可以访问每个单独的控件

使用的层次结构是titleWindow(弹出窗口的一部分)->可蒙皮容器->HGroup->control

跟踪radiobutton时,我得到的路径如下所示:Electric\u Modify.titleIndowskin2620.\u titleIndowskin\u Group1.contents.contentGroup.0.RadioButton2645

单选按钮前的“0”代表第一个名为0的Hgroup id->

我尝试访问单选按钮,如下所示-HGroup中的第5个元素 ((this.contentGroup.getChildAt(行)作为组)。getChildAt(4)作为单选按钮)。enabled=false


并在这一行获取消息“无法访问空对象引用的属性或方法”。我应该如何导航层次结构以到达元素?

您应该使用getElementAt(…)而不是getChildAt(…)

get元素函数表示一个“更高级别”的元素层次结构,这是简化蒙皮所必需的

((this.getElementAt(row) as IVisualElementContainer).getElementAt(4) as RadioButton).enabled = false;
它看起来应该是这样的,但确切的层次结构取决于应用程序中的内容。

@drkstr

谢谢你的意见。。。我想到了另一种对我有效的方法…我通过

parent1=hgrp.parent;然后引用这些按钮,如下所示

((parent1.getChildAt(行)作为组)。getChildAt(4)作为单选按钮)

这就像一个梦…我想你的建议会让我跳过中间层


@J_A_X/@Constantiner:谢谢你的建议。我不知道为什么我们没有仔细考虑并沿着数据组的路径前进。表面上看起来更简单。。。我们开始在MXML中创建UI控件,并按顺序排列控件,当它变得通用时,我们实际上在AS中复制了MXML方法。一开始很容易,直到出现了上述问题。在升级版本时,我们将采用更好的方法解决此问题。它现在可以运行了

我不知道你在用这些问题创建什么样的应用程序,但我可以告诉你,现在你似乎喜欢一个相当简单的问题的过于复杂的解决方案。您不使用数据组或列表有什么原因吗?项目渲染器?数据驱动方法?关注点分离?@J_A_X也许他每写一行代码就能得到报酬。@Jason Towne,哈哈,如果是这样的话,我就认识太多百万富翁了:P@Jason:但愿如此!!