Flex: доступ к ребенку через навигацию - PullRequest
0 голосов
/ 24 мая 2011

У меня есть общая функция для создания рядов элементов управления (каждая строка состоит из ползунков, переключателей, кнопок сброса, отображения текста) и т. Д., А также некоторые функции для изменения базовых данных на основе этих

Как я не делалне хочу писать конкретный код для каждой строки, у меня был код, с помощью которого я могу определить строку, в которой было событие мыши, и хотя эта строка обращается к каждому отдельному элементу управления

Используется иерархия titleWindow (часть всплывающего окна) -> контейнер для обложки-> HGroup-> control

Когда я отслеживаю радиокнопку, я получаю путь следующим образом Electric_Modify.TitleWindowSkin2620._TitleWindowSkin_Group1.contents.contentGroup.0.RadioButton2645

'0' перед radioButton обозначает первый идентификатор Hgroup-> с именем 0

Я попытался получить доступ к переключателю следующим образом - 5-й элемент в HGroup ((this.contentGroup.getChildAt (row)как группа) .getChildAt (4) как RadioButton) .enabled = false;

и получить сообщение «Невозможно получить доступ к свойству или встретилисьХод нулевой ссылки на объект "в этой строке.Как мне перемещаться по иерархии, чтобы добраться до элемента?

Ответы [ 2 ]

1 голос
/ 25 мая 2011

Вы должны использовать getElementAt (...), а не getChildAt (...).

Функции элемента get представляют иерархию элементов «более высокого уровня», которая необходима для облегчения создания обложки.

((this.getElementAt(row) as IVisualElementContainer).getElementAt(4) as RadioButton).enabled = false;

Это должно выглядеть примерно так, но точная иерархия зависит от того, что находится в вашем приложении.

0 голосов
/ 25 мая 2011

@ drkstr

Спасибо за ваш вклад ... Я подумал о альтернативном подходе, который работал для меня ... Я наметил родителя HGroup через

Parent1 = hgrp.parent; и затем ссылки на эти кнопки следующим образом

((parent1.getChildAt (row) как группа) .getChildAt (4) как RadioButton)

Это работает как сон ... Полагаю, ваше предложение позволит мне перепрыгнуть через промежуточные слои

@ J_A_X / @Constantiner: Спасибо за предложение. Я понятия не имею, почему мы не продумали и не пошли по пути DataGroup. На первый взгляд кажется проще ... мы приступили к созданию элементов управления пользовательского интерфейса в MXML, последовательно размечая элементы управления, и когда дело дошло до его универсальности, мы буквально копировали подход MXML в AS. Началось легко, пока не возникло проблем, как указано выше. Мы исправим это, когда будем обновлять версии. Сейчас работает

...