![]() |
Скорость работы в разных браузерах.
Вроде бы плагин один, версия одна, а работать может по разному... В одном браузере летает, а в другом дико тормозит...
В проблемном мувике 2 BitmapData, один (2880х2880) копируется на второй (800х800), как с масштабированием, так и без (вырезался только кусочек битмапа, дабы обеспечить движение). Копирование было через draw(). Отлаживал во внешнем проигрывателе, что запускается самим флешем - все идеально. Все летает, никаких тормозов. А вот люди говорили о тормозах. Проверил: 1. Опера - летает. 2. Внешний проигрыватель - летает 3. ФаерФокс - тормоза 4. ИЕ - подтормаживает, но что-то среднее между Оперой и Мозиллой. 5. Опера или Конкьюрер под линухом - отрисовка быстрая, но идет как бы в замедленном режиме, т.е. "дропов" нет, все плавно, но не в реалтайме. Подумалось, что может что-то не так? Ведь есть разные режимы... Слепил: Код:
var iii='';Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Самое интересное - это полная идентичность всего в Опере и Фоксе, но заметная разница в производительности! Откуда это? Ведь плагин то один... Когда заменил отрисовку на copyPixels рисовать стало быстрее... Если уменьшить размер битмапа, на котором рисуем, то рисует еще быстрее... Подумалось, что с большими битмапами какие-то ограничения - в цикле отрисовал 16 раз - получил прежнею скорость. И вот тут подумалось о проектировании... Я думал, что проще взять 2 битмапа, положить один на сцену и быстро копировать пиксели, причем сами объекты не трогать. Подумалось, что операция будет происходить на уровне копирования памяти... Увы, так оно тормозит... Тогда я взял большой битмап, вытащил его на сцену и стал двигать/масштабировать по ней. Тормоза исчезли везде! Системе проще крутить большой битмап, при этом используя матрицы трансформаций/сглаживание, нежели тупо скопировать кусок памяти. Это как-то странно для меня. Вопросы: 1.Откуда таки тормоза? (кто виноват?) 2. Как лучше проектировать? (что делать?) |
Фокс просто меньше ресурсов выделяет для флеша.
|
А с остальными как быть?
|
Кстати, «слепил» можно было упростить до:
Код:
var txt:TextField = new TextField();Код:
screenDPI=72 |
Хорошо, а как быть с проектированием? Где почитать о том, как лучше реализовывать задачу? Я вот всегда думал, что копирование памяти - самый быстрый способ. Но в данном случае это не так. Флешу проще крутить огромный битмап, даже с матрицами трансформаций. Эх, надеюсь в 10-ке сделают прямой доступ к видеопамяти...
> Кстати, «слепил» можно было упростить Спасибо, буду знать. Я просто из документации скопировал список свойств и на перле сгенерил код, не руками же делать. |
Я тоже замечал, что файрфокс в два раза тормазнутее оперы. А можно как нибудь его настроить (желательно чтобы флэшка сама это делала) чтобы он больше ресурсов выделял?
|
Цитата:
P.S. зато опера сама по себе тормознутая во многих отношениях... |
Я не знаю когда вы копировали. Но работу с BitmapData надо делать делать с ещё не визуализированными объектами. Всё сделали и только потом addChild(...)
|
Цитата:
|
Видимо при кручении большого битмапа используются ресурсы видеокарты, отсюда и тормозов меньше. А с копированием, при постоянной отрисовке одного битмапа в другой, все происходит совсем наоборот, напрягается процессор.
|
| Часовой пояс GMT +4, время: 05:19. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.