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

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

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

блогер
Регистрация: Apr 2011
Сообщений: 583
Записей в блоге: 2
По умолчанию scrollRect вредный для приложения!?

Здравствуйте, работая над одной вещью, столкнулся с проблемой. Буду говорить обобщенно. Есть спрайт - контейнер. В нем несколько слоев по очереди - битмап картинка; слой с разными мувиклипами. Эти разные мувиклипы могут содержать битмапы, векторную графику... это не важно. Контейнер имеет размеры 7000х7000. Руководствуясь соображениями производительности - присваиваю контейнеру свойство scrollRect с размерами, соответствующими размерам сцены. К моему удивлению, в контейнере я вижу разные полоски и квадратики (кроме прочего содержимого). Не буду выкладывать скрины - просто представьте себе искажения в телевизоре, какой-то похожий эффект. Вопрос: откуда?
Что я делаю: присваиваю свойству cacheAsBitmap контейнера значение true. Теперь все отображается без квадратиков, зигзагов и разноцветных линий, короче - без помех. Но! Я ведь помню, что Adobe гласит, что cacheAsBitmap в некоторых случаях это зло. А у меня как раз именно тот случай. В контейнере муиклипы двигаются, изменяются, телепортируются и т.д. Так что 30 раз/сек кешировать контейнер - не гуд.
Тогда есть только один выход: не использовать scrollRect. Но теперь встал вопрос: помогает ли он в случае с некешированным 7000х7000, или нет?
Решил обратится к докам. Перечитал по несколько раз:
http://help.adobe.com/ru_RU/FlashPla...tml#scrollRect
http://help.adobe.com/ru_RU/as3/dev/...0204-7e17.html
С картинками все понятно - пиксели вне квадрата не отображаются, экономит производительность, все бысто-круто - америка голые бабы. Но нигде не нашел упоминания: как scrollRect работает с некешированными обьектами. Будет ли изображение мувиков, которые находится вне квадрата как-то обрабатываться? Если будет, то scrollRect нам здесь не поможет повысить производительность. Если же эти обьекты "заморозятся" то тогда scrollRect - это хорошо. Но мы не можем его использовать, потому что без cacheAsBitmap появляются искажения, а с cacheAsBitmap приложение будет еще боьше тормозить, через частое обновление подложки.
Вот такая вот дилема. Что посоветуете товарищи? Или, может, обьясните откуда эти искажения появляются и как их устранить. А, может, обьясните как работает scrollRect с обьектами вне его границ. И выяснится, что он подходит только для битмап, а для изменяющихся 30 р/с мувиклипов в контейнере 7000х7000 он мне вообще не поможет? Спасибо заранее за помощь.
__________________
Я мало чего умею, но зато хорошо умею учиться...


Последний раз редактировалось HardCoder; 28.01.2012 в 14:02.
Старый 28.01.2012, 15:15
Art_133 вне форума Посмотреть профиль Отправить личное сообщение для Art_133 Посетить домашнюю страницу Art_133 Найти все сообщения от Art_133
  № 2  
Ответить с цитированием
Art_133
 
Аватар для Art_133

блогер
Регистрация: Feb 2007
Адрес: Москва
Сообщений: 538
Записей в блоге: 2
Отправить сообщение для Art_133 с помощью Skype™
Я так понимаю, что у вас в контейнере клипы? Может есть смысл добавлять на сцену только те обьекты, которые в области видимости?

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

блогер
Регистрация: Apr 2011
Сообщений: 583
Записей в блоге: 2
Это очень сложно реализовать, так как контейнер можно перемещать мышью. И при каждом mouseMove вычислять какие обьекты должны быть видны, а какие нет и соответственно добавлять и удалять их из контейнера... Это сложновато, и для меня и для флешплеера, наверно.
__________________
Я мало чего умею, но зато хорошо умею учиться...

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

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

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


 


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


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