Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Работа с setChildIndex (http://www.flasher.ru/forum/showthread.php?t=160953)

DarkKnight2009 19.07.2011 15:52

Работа с setChildIndex
 
Пытаюсь сделать текст всегда видимым.
Тоесть, если на него "наежает" какой нибудь предмет, то текст остается всегда на первом планет.
делаю следующее
setChildIndex(txt, 2)
Но флеш выдает ошибку
Код AS3:

RangeError: Error #2006: Предоставленный индекс выходит за допустимые пределы.
        at flash.display::DisplayObjectContainer/setChildIndex()
        at app.CreateText::SetText/createText()
        at app.CreateText::SetText()
        at Main()

Что не так, подскажите пожалуйста?
Текст добавляется с помощью actionscript

КорДум 19.07.2011 15:55

Очевидно, что на глубине 2 (0..1..2) ничего нет. А дисплей лист устроен как вектор (пустых элементов быть не может). Делайте
Код AS3:

setChildIndex(numChildren - 1)


goodguy 19.07.2011 16:00

А не проще ли просто addChild(txt) ?
Автоматически удалится из того места, куда добавлен и добавится снова, поверх всех остальных элементов указанного контейнера

КорДум 19.07.2011 16:01

Проще, но тема вон как зовется ;)

DarkKnight2009 19.07.2011 16:16

Если я добавлю с помощью addChild , то фигура, которая тоже таким образом добавляется в другом классе при анимации наедет на текст и закроет его.
Сама фигура имеет setChildIndex(shape, 0);
А тексту задаю setChildIndex(txt, 1);
Но выводится ошибка

КорДум 19.07.2011 16:19

Больше кода. Мало понятно пока.

goodguy 19.07.2011 16:20

ну тогда так:
Код AS3:

addChildAt(txt, getChildIndex(shape) + 1);


DarkKnight2009 19.07.2011 16:21

Текст добавляется вот так
Код AS3:

txt1 = new GetText("Alcohol And Drugs", 16, "0x000000", "Arial", false, 300, 1, xPos, 105);
                        txt2 = new GetText("Becoming Familiar With Your Vehicle", 16, "0x000000", "Arial", false, 300, 1, xPos, 130);
                        txt3 = new GetText("Defensive Driving Techniques", 16, "0x000000", "Arial", false, 300, 1, 50, 155);
                        txt4 = new GetText("Driving In Bad Weather", 16, "0x000000", "Arial", false, 300, 1, 50, 180);
                        txt5 = new GetText("Driving Privileges", 16, "0x000000", "Arial", false, 300, 1, 50, 205);
                        txt6 = new GetText("Laws And Rules Of The Road", 16, "0x000000", "Arial", false, 300, 1, 50, 230);
                        txt7 = new GetText("Road Rage", 16, "0x000000", "Arial", false, 300, 1, 50, 255);
                        txt8 = new GetText("Seat Belts", 16, "0x000000", "Arial", false, 300, 1, 50, 280);
                        txt9 = new GetText("Sharing The Road", 16, "0x000000", "Arial", false, 300, 1, 50, 305);
                        txt10 = new GetText("Signs, Signals, and Markings", 16, "0x000000", "Arial", false, 300, 1, 50, 330);
                        txt11 = new GetText("Space Management", 16, "0x000000", "Arial", false, 300, 1, 50, 355);               
 
 
                        txtArray.push(txt1);
                        txtArray.push(txt2);
                        txtArray.push(txt3);                       
                        txtArray.push(txt4);
                        txtArray.push(txt5);
                        txtArray.push(txt6);
                        txtArray.push(txt7);
                        txtArray.push(txt8);
                        txtArray.push(txt9);
                        txtArray.push(txt10);
                        txtArray.push(txt11);
for(var i:int = 0; i < coordsArray.length; i++)
                        {
                                textFieldArray[i] = new TextField();
                                textFieldArray[i].text = txtArray[i];
                                //textFieldArray[i].x = 50;
                                //textFieldArray[i].y = coordsArray[i];
                                addChild(txtArray[i]);                                                       
                        }                               
                }

Этот текст нужно вынести на первый план, поверх всех элементов, которые добавляются из других классов

КорДум 19.07.2011 16:22

Так добавьте его в отдельный контейнер. И этот контейнер выводите на передний план. Или я чего-то не понимаю?

goodguy 19.07.2011 16:23

Что-то в коде фигня какая-то. Цикл идет по одному массиву, создаются элементы в другом, а добавляются вообще элементы третьего. Что это?


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

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