Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   изменение порядка child'ов в контейнере и цикличная анимация. (http://www.flasher.ru/forum/showthread.php?t=122861)

loover 19.03.2009 22:59

изменение порядка child'ов в контейнере и цикличная анимация.
 
есть child'ы в контейнере. есть функция, в которой для каждого child'а в контейнере запускается tween альфы (используется переменная для определения текущего child'а, которая после запуска увеличивается на 1). потом переменная обнуляется и цикл начинается заново. вот тут и возникает проблема.

самый верхний child перекрывает все остальные child'ы и поэтому их анимация не видна. можно ли как-то именить их порядок в контейнере, что бы цикл продолжался с нулевого child'а на переднем плане? я пробовал менять местами все child'ы через for..in. но тогда нулевой (до for..in) child становился последним (выше всех) в стопке и анимация все равно не видна.

dimarik 19.03.2009 23:59

Нулевой ребенок будет всегда нижним, т.е. никогда не будет на переднем плане. Меняйте глубину с помощью DisplayObjectContainer.setChildIndex(child, index).

loover 20.03.2009 00:48

так я спомощью него и менял. т.е. 5 объект становился нулевым и попадал в самый низ. а т.к. анимация начинается с нуля его просто не видно.

dimarik 20.03.2009 11:12

Попробуйте при старте анимации определенного child'а менять ему индекс на самый высокий из набора.

loover 20.03.2009 22:09

не получается. вылетает ошибка выхода за пределы количества child'ов: Error #2006: The supplied index is out of bounds. вот код:
Код AS3:

private function setupTimer():void
{
        timer = new Timer(500,1);
        timer.addEventListener(TimerEvent.TIMER, setupTween);
        timer.start();
}
private function setupTween(e:TimerEvent):void
{
        var imgCLength:uint = imgCont.numChildren;
        if (p < imgCLength)
        {
                imgTween = new Tween(imgCont.getChildAt(p),"alpha",Regular.easeIn,0,1,0.5,true);
                imgCont.setChildIndex(imgCont.getChildAt(p), imgCLength);
                timer.removeEventListener(TimerEvent.TIMER, setupTween);
                p++;                               
        } else
        {
                p = 0;
                t = 0;
        }
        setupTimer();
}



Часовой пояс GMT +4, время: 04:02.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.