Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 06.02.2015, 14:40
faraday вне форума Посмотреть профиль Отправить личное сообщение для faraday Найти все сообщения от faraday
  № 1  
Ответить с цитированием
faraday
 
Аватар для faraday

Регистрация: Apr 2009
Сообщений: 409
По умолчанию bitmapData работает через раз

Здравствуйте, в игре имеется карта состоящая из нескольких слоев: растровый фон (2500*2000 bitmap), и около 100 городов, которые для скорости работы анимаций фильтров пересчитываются в растр bitmap.draw(sprite).applyFilter(glow);
У 98% игроков карта рендерится за ~3 сек, но у остальных клиент подвисает на минуту или плюется ошибками, вот пример такой сессии (данные на входе тут у всех одинаковые)
Выбивает в основном ошибку 1502 (скрипт дольше 15 сек), 1009 (null не имеет свойств) или 2015 (invalid bitmapData) При чем выбивает постоянно в разных местах
В другой сессии у тех же игроков, иногда все грузится нормально. ТО есть закономерности отследить сложно. Пробовал поднимать лимит выполнения скрипта на 60 сек, но результат тот же. Свободной оперативной памяти при старте игры тоже нормально.
В чем может быть проблема и как ее можно решить? Пока первое что приходит на ум - это считать битмапы городов порциями при enterFrame , по идее асинхронность должна решить 1502 ошибку. Но хз что с 2015 BitmapData(2500, 2000, true, 0); вроде в лимит это не упирается, тем более в других сессия работает норм.


Последний раз редактировалось faraday; 08.02.2015 в 15:25.
Старый 06.02.2015, 15:03
gloomyBrain вне форума Посмотреть профиль Отправить личное сообщение для gloomyBrain Найти все сообщения от gloomyBrain
  № 2  
Ответить с цитированием
gloomyBrain
 
Аватар для gloomyBrain

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
"Invalid BitmapData" обычно возникает, при попытке создания новго объекта BitmapData с нулевыми размерами по одной или двум осям. Может быть такое? Например, в момент вызова draw отображение города еще не полностью подгрузилось и имеет размеры 0x0.
__________________
...вселенская грусть

Старый 06.02.2015, 15:12
faraday вне форума Посмотреть профиль Отправить личное сообщение для faraday Найти все сообщения от faraday
  № 3  
Ответить с цитированием
faraday
 
Аватар для faraday

Регистрация: Apr 2009
Сообщений: 409
Нет, в конструктор для границ стран передаются константы BitmapData(2500, 2000, true, 0);
А что касается размера городов. они берутся из библиотечных шейпов. так что если б были нулевые - размеры заметил.


Добавлено через 48 часов 15 минут
Invalid Bitmap скорее всего вознкиает из-за отсутсвия памяти. Хотя там всего то создаются 3 битмапы 2500*2000. С ошибкой 1502 - по-прежнему не понятно, почему у некоторых все отрисовывается за секунду, а у других висит по минуте. Поможет ли вынесение работы с битмапой в отдельный Woker? Стоит ли попробовать вариант с асснхронным циклом? мне он кажется бесполезным..

Создать новую тему Ответ Часовой пояс GMT +4, время: 19:34.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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