![]() |
В чем разница между setChildIndex() и addChildAt()
Здравствуйте. Понятно, что второй метод еще и добавляет обьект в дисплей лист, а первый лишь изменяет глубину. Но, если обьект уже добавлен, и мне нужно 30 раз/сек изменять его глубину, какой из двух вариантов лучше использовать? Что лучше в плане производительности? В справке по этому вопросу ничего не сказано.
|
я думал, что человек, рассказывающий в блоге о создании изометрического мира умеет делать тесты на производительность
PS. setChildIndex побыстрее |
Цитата:
to HardCoder Вот как раз и стоит научиться замерять производительность. |
Спасибо, за ответы. Да, я задал вопрос, потому что не умею замерять производительность как следует. Да и "производительность" - понятие растяжимое. По логике, нужно использовать setChildIndex(), так как он для этого и предназначен, addChildAt() предназначен для другого - для добавления обьектов. Но проведя небольшой тест в дебаг плеере, картина получилась следующая:
Цитата:
Код AS3:
|
setChildIndex еще пчку проверок валидности такого действия проводит. Как минимум есть ли такой объект в данном паренте. А addChildAt втупую добавляет объект и всё.
Сортировка аддчилдами самая быстрая, да ты собственно и сам на своем тесте увидал уже. Правда я не уверен что индекс 0 для теста самый удачный, рандомных бы каких-то напихал. А то думаю [ноль] и [numChildren - 1] как-то иначе обрабатываются по ускоренной схеме. Добавлено через 1 минуту Ну и тайм 30 милисекунд не совсем ок. Добавь туда еще один нолик хотя бы в кол-во объектов, а то таймер может врать на маленьких цифрах. |
при [numChildren - 1] быстрее setChildIndex, но не на много
а вообще получается, что зависимость от кол-ва детей и индекса куда хотим запихнуть |
Цитата:
Когда все обьекты помещаем на 0-вой индекс: Цитата:
Цитата:
Цитата:
Действительно, при [numChildren - 1] результаты почти одинаковые. Добавлено через 5 минут Вот и опять вопрос по главной теме. Если setChildIndex хорош лишь при индексе [numChildren - 1], то в чем его полезность? |
вот тут батьки начали этот разговор, но ушли немного далековато от темы (за что их бы неплохо поругать)
хотя там обсуждается как раз добавление в конец списка отображения тут думаю нет смысла искать "отличия", все-таки метод addChildAt можно использовать для разных контейнеров, а setChildIndex только в текущем |
Код:
298 3158Дальше цифры уже меньше отличаются. Цитата:
|
Вообще странно, что setChildIndex проигрывает. Может имеет смысл проверить не дебаг версию?
|
Цитата:
|
Код AS3:
|
он не об этом =)
имелось ввиду скомпилить под release в FD (а я так понял вы именно в нем) это рядом с кнопкой Test Project |
Dukobpa3, я немного не о том спрашивал, а как проверить не дебаг версию :). Короче, не знаю, обьективный ли такой вариант, или нет, но создал текстовое поле. Скомпилировал для релиза и тестировал в браузере (чтоб релиз-флешка не выполнялась в дебаг-плеере ФД). Слева addChildAt(), справа setChildIndex().
Когда все обьекты помещаем на 0-вой индекс: Цитата:
Цитата:
Цитата:
addChildAt() - ему по барабану все. setChildIndex() - чем ближе индекс к нулю, тем дольше выполняется код. Чем ближе к numchildren-1 -тем быстрее он выполняется и приближается к addChildAt() по скорости. |
Судя по последним цифрам это либо не релизная флешка либо хз. Задержки больше чем в дебажной получаются.
Насчет: Цитата:
|
Цитата:
Код AS3:
|
Значит тогда видимо из-за того что в браузере, там всегда медленнее чем в плеере получается. Ок.
|
| Часовой пояс GMT +4, время: 13:55. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.