AS3 / Flex 4: maneira mais prática de encontrar crianças aninhadas

Estou meio que pulando de cabeça para algumas coisas do Flex / AIR. Tenho um histórico bastante sólido com o AS3, mas, dada a complexidade hierárquica inerente do Flex (em comparação com o Flash normal), estou com um problema.

Vamos supor que você tenha um aplicativo em que praticamente tudo é orientado a eventos (comum). O acesso a elementos próximos ao destino do evento, ou o próprio destino do evento, é trivial. Estou tentando encontrar, no entanto, a maneira mais prática (leia-se: melhor, mais eficiente) de encontrar crianças que estão muito distantes do contexto atual.

Eu sei que existem funções comogetChildAt() egetChildByName(), mas que assume um contexto pai; e se o elemento (Flex) que você está procurando for vários pais acima, em um irmão, e depois vários filhos abaixo? Tomamos como certo o jQuery que faz isso facilmente, mas obviamente não temos esse luxo no AS3.

Algum dos seguintes itens é válido? Existe uma maneira melhor?

Faça uma iteração entre os pais e os pais dos pais até encontrar um ponto de parada, encontre o irmão e interaja com os filhos e os filhos deles até encontrar o alvo;

Mantenha os principais objetos em um armazenamento de objetos global (sic) e faça referência a eles conforme necessário (yech)

Use notação de ponto específica para alcançar o alvo, incluindo elementos (como peles e seus recipientes - yech novamente)

Qualquer pensamento seria apreciado.

Editar:

Para esclarecer, vamos usar um aplicativo Flex 4 AIR vazio. Nós temosWindowedApplication como raiz, obviamente, e vamos adicionar doisSkinnableContainer crianças com identificaçãonavContainer emainContainer, respectivamente. Ambos têm skins personalizadas. DentromainContainertemos outroSkinnableContainer com um layout vertical e IDmainContent, e como um de seus filhos, ele tem um objeto (qualquer um serve - uma faíscaBorderContainer, talvez) com o IDanimatedBox, por exemplo. Dentro donavContainernós temos uma faíscaButton, que tem um ouvinte vinculado aMouseEvent.CLICK. Dentro dessa função, vamos querer acessaranimatedBox (nativeWindow.mainContainer.mainContent.animatedBox) e animá-lo para alterar, digamos, sua largura.

O objetivo é acessar essa distânciaDisplayObject (animatedBox) de uma maneira tão discreta e eficiente quanto possível, enquanto ainda estou em conformidade com os padrões Flex que claramente ainda tenho que possuir. :)

questionAnswers(3)

yourAnswerToTheQuestion