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

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

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

Регистрация: Jan 2012
Сообщений: 836
По умолчанию Вопрос по добавлению объектов

Всем привет. Создается к примеру 2000 объектов. Добавление объектов идет таким образом
Код AS3:
var model:MovieClip = new (ApplicationDomain.currentDomain.getDefinition("object_" + id) as Class);//object_+id - это ссылка на экземпляр movieClip с картинкой.
addChild(model);
Скажите чем плох таков вариант, если подобных объектов очень много добавляется на сцену? Подскажите другие варианты реализации, более оптимизированные, если таково надо.

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

Регистрация: Apr 2009
Сообщений: 409
создавать мувиклип для хранения картинки - уже идея плохая. создаешь атлас всей графики. загружаешь одну png. из из нее по необходимости забирая нужные битмапы, кешируя.

Старый 24.03.2016, 01:52
Godwarlock вне форума Посмотреть профиль Отправить личное сообщение для Godwarlock Найти все сообщения от Godwarlock
  № 3  
Ответить с цитированием
Godwarlock

Регистрация: Jan 2012
Сообщений: 836
Атлас я так понимаю, это вектор битмап? А как это повлияет на производительность?

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

Регистрация: Apr 2009
Сообщений: 409
напиши конкретнее задачу, что содержат мувиклипы. если картинки, то все 2000 разные?

Старый 24.03.2016, 04:23
Godwarlock вне форума Посмотреть профиль Отправить личное сообщение для Godwarlock Найти все сообщения от Godwarlock
  № 5  
Ответить с цитированием
Godwarlock

Регистрация: Jan 2012
Сообщений: 836
Мувиклипы содержат 8 картинок(по 1 картинке на кадр). Активна только 1 картинка из всех 8, то есть она указывается в gotoAndStop(1-8). Каждый объект - это отдельная картинка. В зависимости от того, какой порядковый номер передается в параметр, устанавливается кадр мувиклипа, ну как и сказал указывается в gas.
Код AS3:
если картинки, то все 2000 разные?
Нет. 60% из них могут быть одинаковые.
Цитата:
напиши конкретнее задачу
Единственная задача - это оптимизировать большую генерируемую карту. Я и обрезаю область вьюшки, обрезаю неактивные объекты в этой области и прописываю casheAsBitmap(что кстати дало немного фпсу), пробовал переводить картинку мувиклипа в битмапу и добавлял уже битмапу, а не мувиклип(что не дало никакой производительность, а только понизилась) и растеризацию по такой штуке http://www.ant-karlov.ru/iz-vektora-v-rastr.html проводил(то есть добавлял уже не мувиклипы, а цеплял из массива битмап, что понизило опять же производительность). И качество картинок обрезал до jpeg 60, без сглаживания. Нефига. На моей системе кое-как держится fps от 55-60(i3) в редких случаях падает до 48, на более старых системах, например двухядерных fps падает до 20, а то и меньше при скроллинге этой карты. Я убирал эти 2000 объектов(одного размера) и оставлял 130 разного. Фпс естественно возрастает, но все равно на старой системе при движении фпс падает примерно до 35-40. Если не двигать ничего, то стабильно 60.


Последний раз редактировалось Godwarlock; 24.03.2016 в 05:01.
Старый 24.03.2016, 06:08
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 6  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
Сообщение от Godwarlock Посмотреть сообщение
Атлас я так понимаю, это вектор битмап? А как это повлияет на производительность?
Это атлас текстур
__________________
Ко мне можно и нужно обращаться на ты)

Старый 24.03.2016, 19:10
Godwarlock вне форума Посмотреть профиль Отправить личное сообщение для Godwarlock Найти все сообщения от Godwarlock
  № 7  
Ответить с цитированием
Godwarlock

Регистрация: Jan 2012
Сообщений: 836
caseyryanОкей. Так как это повлияет на производительность? Тайлсет в одной битмапе, ведь тоже по сути можно считать атласом? Но за счет чего будет прирост?

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

Регистрация: Apr 2009
Сообщений: 409
если ты уже используешь тайлсет, то откуда появляются мувиклипы? на сцене одновременно не должно добавляться да и находится 2000 объектов. перерисовывай только вьювпорт

Старый 24.03.2016, 22:24
Godwarlock вне форума Посмотреть профиль Отправить личное сообщение для Godwarlock Найти все сообщения от Godwarlock
  № 9  
Ответить с цитированием
Godwarlock

Регистрация: Jan 2012
Сообщений: 836
Визуально, там где находится персонаж, добавлено около 200 объектов, остальные 1800 удаляются со сцены и добавляются, только тогда, когда они попадают в фокус. Тайлсет я не использую, но могу попробовать и чтобы начать, хотелось бы услышать ответ, чем это лучше обычных мувиклипов.

Старый 25.03.2016, 08:38
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 10  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Вместо мувиклипов лучше использовать для обертки Sprite, он более легковесный, не имеет временной шкалы, которую нужно все время считать.
И второе, зачем у тебя создается 2000 новых объектов? Почему ты не используешь пул?
__________________
Ко мне можно и нужно обращаться на ты)

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

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

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


 


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


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