Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Скролл огромного спрайта без лагов (http://www.flasher.ru/forum/showthread.php?t=207931)

MikroAcse 19.05.2014 09:34

Можно разделить на куски размером 100х100 и подгружать.

Котяра 19.05.2014 11:07

Цитата:

Сообщение от uglan (Сообщение 1166085)
– делать один шейп+битмапдату и с помощью copypixels и матрицы скроллить – летает без лагов, НО из-за ограничений размеров битмапдаты(несмотря на то что в доках написано что ограничения сняты) флеш дает нарисовать четко без снижения разрешения только около 4к пикселей в ширину.

А что мешает сделать вам итоговый шейп размером с отображение?
Я не пойму - и копировать всё что надо в этот вьюпорт? Где есть 4к моники?

uglan 19.05.2014 11:32

Цитата:

Сообщение от in4core (Сообщение 1166114)
-Дело в том, что - причем тут 4 экрана ? Экран то один. Или вы собрались каким то образом объединить 4 айпада на показ одного результата ? :)

– под "экраном" здесь я имею в виду область 2048х1536. Грубо говоря если у вас разрешение 1920*1080 – то 2 ваших экрана это поверхность размером 3840*1080.

Цитата:

Можно разделить на куски размером 100х100 и подгружать.
– ну у меня сейчас 4 куска по 2048х1536. Уменьшение текстуры увеличит количество битмап. Вы уверены что это решит проблему лагания скролла?

Цитата:

А что мешает сделать вам итоговый шейп размером с отображение?
Я не пойму - и копировать всё что надо в этот вьюпорт? Где есть 4к моники?
Еще раз, шейп я создавал в размер с отображение. Проблема в том, что общая bitmapData в размер 8192х1536 не может быть создана из-за ограничений флеша(он сам понижает разрешение из-за чего картинка становится битой и лоурезной). 4к моник – это два "экрана" ретинообразного ipad'a.

PsixokoT 19.05.2014 11:45

Цитата:

Сообщение от uglan (Сообщение 1166125)
Еще раз, шейп я создавал в размер с отображение. Проблема в том, что общая bitmapData в размер 8192х1536 не может быть создана из-за ограничений флеша(он сам понижает разрешение из-за чего картинка становится битой и лоурезной). 4к моник – это два "экрана" ретинообразного ipad'a.

зачем вам общая битмапдата? у вас итак есть 4 штуки. Просто копируете в свой шейп только из той(тех) битмапдат которые попадают на экран.

uglan 19.05.2014 11:59

Цитата:

Сообщение от PsixokoT (Сообщение 1166127)
зачем вам общая битмапдата? у вас итак есть 4 штуки. Просто копируете в свой шейп только из той(тех) битмапдат которые попадают на экран.

Мысль хорошая :) только честно говоря не представляю как мне рисовать битмапы в стык. То есть именно в те моменты когда на экране видны сразу две картинки. Сейчас скролл осуществляется твинером либо смещением спрайта по x , либо транслейтом tx в матрице(в случае отрисовки в шейп). То есть с одной битмапой без проблем, как мне объединить нужные 2?

Котяра 19.05.2014 13:05

Цитата:

как мне рисовать битмапы в стык.
Код AS3:

viewBitmapData.copyPixels (bitmapData1, rect1, point1);
viewBitmapData.copyPixels (bitmapData2, rect2, point2);
viewBitmapData.copyPixels (bitmapData3, rect3, point3);
viewBitmapData.copyPixels (bitmapData4, rect4, point4);

Добавлено через 1 минуту
другое дело, что блиттинг на мобилках таки очень тормозной.

Aquahawk 19.05.2014 14:33

Во, кстати, посмотрите как Яндекс карты сделаны, или гугловые, и поймите как надо делать. Там сразу понятно что всё за раз не влезет.

uglan 19.05.2014 18:19

Цитата:

Сообщение от Котяра (Сообщение 1166134)
Код AS3:

viewBitmapData.copyPixels (bitmapData1, rect1, point1);
viewBitmapData.copyPixels (bitmapData2, rect2, point2);
viewBitmapData.copyPixels (bitmapData3, rect3, point3);
viewBitmapData.copyPixels (bitmapData4, rect4, point4);


Такой способ все таки не лагает, но тормозит равномерно даже в GPU :(

Котяра 23.05.2014 12:26

Цитата:

не лагает, но тормозит
это как?

uglan 23.05.2014 21:43

Цитата:

Сообщение от Котяра (Сообщение 1166426)
это как?

Ну "тормозит" это когда фпс всегда низкий, например в районе 10 кадров/сек. А "лагает" это когда в целом фпс нормальный, но периодически подвисает на краткий промежуток времени(дергается, заикается итп).


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

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