Выбор братьев и сестер MXML с ActionScript, как JavaScript? - PullRequest
0 голосов
/ 17 июня 2010

Я пытаюсь получить одноуровневый тег mxml, аналогичный тому, как выбираются братья и сестры в javascript.Возможно ли это в Actionscript?

Например, когда я нажимаю TextArea с идентификатором textarea1, мне нужно, чтобы он сказал мне, что у брата есть идентификатор rect1, поэтому я могу выполнить дальнейшую обработку для него.

<s:Group>
     <s:TextArea id="textarea1" click="getSibling(event)" />
     <s:Rect id="rect1" />
</s:Group>

Ответы [ 3 ]

2 голосов
/ 17 июня 2010

Предполагая, что Group, TextArea и Rect являются UIComponents, я думаю, что это должно работать:

    private function getSibling(e:Event):void {
        var parent:UIComponent = e.currentTarget.parent;

        if(parent) {
            var len:int = parent.numChildren;
            var child:UIComponent;
            for(var i:int = 0; i < len; i++) {
                child = parent.getChildAt(i) as UIComponent;
                if(child && child != e.currentTarget) {
                    trace(child.id);
                }
            }
        }
    }
1 голос
/ 17 июня 2010

Насколько я знаю, нет способа сделать это.Однако и textarea1, и rect1 являются дочерними элементами группы.Если вы дадите группе идентификатор, вы сможете обойти всех потомков, чтобы найти всех братьев и сестер TextArea.

В Flex 3 вы будете использовать цикл for, numChildren и getChildAt.Я подозреваю, что во Flex 4 это будет похоже.

1 голос
/ 17 июня 2010

Моя первоначальная мысль заключается в том, чтобы получить доступ к родителю, а затем получить список детей в нем.

function getSibling(e:Event):void { 
   //get an array of children from the parent.
   var children:Array = e.target.parent.getChildren();  

   //process children as you wish... 
}

Это обсуждалось в отношении Javascript здесь .

Надеюсь, это поможет.

Ник

nickgs.com

...