![]() |
RangeError: Invalid child index in Starling
Вообще-то нет разницы Старлинг это или обычный дисплей лист.
Смысл в том, что на сцене имеется несколько объектов (картинки и текст) для которых важно положение относительно друг друга по глубине (depth). Отправляем их в БД на сервере и, если картинки, то тоже сохраняем на сервере. Везде записываем индекс картинки, он же depth. Теперь при загрузке с сервера загружаем картинки сихронно лоадером, чтобы было быстрее. Но, т. к. они все разных размеров, то если мелкие лежали над крупными, то оказываются под ними. Начинаю юзать addChildAt - получаю ошибки с rangeError: Invalid child index |
код покажешь?
|
Славик, спасибо, твой вопрос подтолкнул меня к поискам.
Повесил слушатель на Event.COMPLETE для каждой картинки и по её срабатыванию: scene.setChildIndex((e.target as Picture), (e.target as Picture).depth); Вроде работает. |
я бы прям фак запилил уже..
|
Цитата:
Я полагаю, надо как-то так Код AS3:
|
Цитата:
|
Цитата:
|
Скорее всего вы пытаетесь расставлять чайлды до того как они все были добавлены в родителя, соответственно вылетаете с индексом, ловите "маловероятное событие".
|
Ну и второй вариант - когда мы пытаемся поменять глубину тому, что уже есть в дисплей листе. Получается примерно так (на спичках):
- всего в стопке 10 коробков - мы хотим переставить самый нижний коробок (ну или из середины, не важно) на самый верх - вынимаем коробок (с позиции 0) из стопки и ставим на позицию 10 (логично, ведь раньше в стопке было 10 коробков, индексация у нас с 0) Вроде все верно. Но. Тут кроется ошибка - на момент постановки коробка на самы верх, в стопке всего 9 коробков, а не 10. Ведь мы сначала вынимаем, а потом ставим наверх. |
А почему бы не отсортировать картинки при запросе по глубине
Код:
SELECT * FROM images ... ORDER BY depth ascКод AS3:
P.S. Псевдокод :) |
| Часовой пояс GMT +4, время: 05:34. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.