Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Мувик дергается при масштабировании. (http://www.flasher.ru/forum/showthread.php?t=108557)

AlexeiSulga 24.02.2008 07:09

Мувик дергается при масштабировании.
 
Вложений: 1
Приветствую всех,

После 2-х дней упорной работы возник вопрос. Имеется флеш сайт где желательно анимировать появление подстраниц - scale от 10 до 100% за 2 секунды. Сами страницы содержат компоненты, видео и т.п. Вообщем сомневаюсь насчёт простого mc._xscale

Решил попробовать bitmapdata. Создаю 2 мувика, первый прозрачный к нему применяю методы scaleTo Tween класса.
Первый мувик использую для получения x, y, width, height.


Второй мувик содержит в себе bitmap скопированный с подстраницы. После каждого обновления первого мувика, заново отрисовываю bitmap с подстраницы, только теперь с измененной matrix.

Проблема в том не получается достичь реально плавного движения. Полюбому какие-то мелкие дергания.

Подскажите как правильно подойти к решению этой задачи.

Olegg 25.02.2008 13:21

попробуйте увеличить framerate

WindWalker 26.02.2008 05:20

Цитата:

Сообщение от AlexeiSulga
Второй мувик содержит в себе bitmap скопированный с подстраницы. После каждого обновления первого мувика, заново отрисовываю bitmap с подстраницы, только теперь с измененной matrix.

Отрисовка мувика на битмап с использованием матрицы - процесс нисколь не менее трудоёмкий, чем отрисовка мувика на экране.

Вот представим себе мувик, содержащий 1000 линий.
Не важно, какого он будет размера, даже если мы его сожмём в 1 пиксель, всё равно флеш будет рисовать все 1000 линий.
И если мы делаем анимацию масштабирования от 20% до 100%, то в каждом кадре будут рисоваться эти 1000 линий.

Когда рисуете мувик на битмап происходит всё то же самое: эти же 1000 линий умножается на матрицу и рисуются на битмапе.
Даже если будет нулевая матрица, всё равно флеш будет обрабатывать все линии.

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

На самом деле битмап надо использовать иначе:
нарисовать на нём мувик ОДИН РАЗ, присоеденить этот битмап в другой мувик опять же ОДИН РАЗ, а затем масштабировать мувик с битмапом.

Правда, в таком случае мы теряем динамику - битмап у нас будет статичным. Но зато выигрываем в скорости, так как масштабирование и отрисовка одного битмапа куда быстрее, чем множества мелких элементов.

AlexeiSulga 26.02.2008 05:43

Цитата:

Сообщение от WindWalker
На самом деле битмап надо использовать иначе:
нарисовать на нём мувик ОДИН РАЗ, присоеденить этот битмап в другой мувик опять же ОДИН РАЗ, а затем масштабировать мувик с битмапом.
Так и реализовал. Вообще идея со вторым мувиком появилсь после того как обнаружил что, когда в конце анимации подменяю битмап реальным мувиком страницы, некоторые тексты прыгают на 1 пиксел. Это было вызвано тем что тип прорисовки текстовых полей был "Anti-alis for readability", надо ставить "Anti-aliаs for animation", в этом случае пропадает дергание в 1 пиксел.


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

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