![]() |
bitmapData работает через раз
Здравствуйте, в игре имеется карта состоящая из нескольких слоев: растровый фон (2500*2000 bitmap), и около 100 городов, которые для скорости работы анимаций фильтров пересчитываются в растр bitmap.draw(sprite).applyFilter(glow);
У 98% игроков карта рендерится за ~3 сек, но у остальных клиент подвисает на минуту или плюется ошибками, вот пример такой сессии (данные на входе тут у всех одинаковые) http://i.imgur.com/XVeYIt4.png Выбивает в основном ошибку 1502 (скрипт дольше 15 сек), 1009 (null не имеет свойств) или 2015 (invalid bitmapData) При чем выбивает постоянно в разных местах http://i.imgur.com/apziOw0.png В другой сессии у тех же игроков, иногда все грузится нормально. ТО есть закономерности отследить сложно. Пробовал поднимать лимит выполнения скрипта на 60 сек, но результат тот же. Свободной оперативной памяти при старте игры тоже нормально. В чем может быть проблема и как ее можно решить? Пока первое что приходит на ум - это считать битмапы городов порциями при enterFrame , по идее асинхронность должна решить 1502 ошибку. Но хз что с 2015 BitmapData(2500, 2000, true, 0); вроде в лимит это не упирается, тем более в других сессия работает норм. |
"Invalid BitmapData" обычно возникает, при попытке создания новго объекта BitmapData с нулевыми размерами по одной или двум осям. Может быть такое? Например, в момент вызова draw отображение города еще не полностью подгрузилось и имеет размеры 0x0.
|
Нет, в конструктор для границ стран передаются константы BitmapData(2500, 2000, true, 0);
А что касается размера городов. они берутся из библиотечных шейпов. так что если б были нулевые - размеры заметил. http://i.imgur.com/gh23sjZ.png Добавлено через 48 часов 15 минут Invalid Bitmap скорее всего вознкиает из-за отсутсвия памяти. Хотя там всего то создаются 3 битмапы 2500*2000. С ошибкой 1502 - по-прежнему не понятно, почему у некоторых все отрисовывается за секунду, а у других висит по минуте. Поможет ли вынесение работы с битмапой в отдельный Woker? Стоит ли попробовать вариант с асснхронным циклом? мне он кажется бесполезным.. |
| Часовой пояс GMT +4, время: 23:02. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.