Flash: плавный медленный битмап

Flash: плавный медленный битмап

«Плавное медленное» движение битмапа во Флэш

Дано:

медленнодвижущийся объект во flash, представляющий собой (или содержащий) битмап. Если при этом скорость движения объекта мала (приращение позиции за один кадр меньше 1 пиксела), то движение битмапа «рваное» — не происходит сглаживания картинки при движении.

Требуется:

достичь плавного движения битмапа

Решение:

Простое логическое рассуждение: если движение вектора плавное, а битмапа — нет, возможно, превращение битмапа в вектор решит проблему. Как сделать из битовой картинки во flash векторный объект? Просто break его apart! (ctrl+B)! На выходе получаем объект — прямоугольник с битовой заливкой. Далее все операции над ним выполняются, как над векторным объектом, в том числе и анти-алиасинг при не-целых значениях координат пиксела. Замеченные проблемы: при выполнении операции «Break Apart» происходило изменение размеров битмапа (полученный прямоугольник был меньше. Проблема не исчезнет, если его не вернуть к прежним размерам!

Вариант 2: господин Alexey Ivanov предлагает задавать бимапу некоторое искажение (например, _xscale=100.1) и обещает хороший результат. Не исключено, что именно в этом и есть корень решения проблемы (мы ведь тоже изменяли пропорции после Break Apart!)

Вариант 3: Кривоватое, но рабочее решение. По мотивам работ товарища Falkeyn. Поскольку движение рваное, очевидно что оно осуществляется по целым пикселям. А что если использовать два одинаковых битмапа (один над другим), нижний из которых будет двигаться с опозданием, а верхний — с опережением, а для верхнего устанавливать прозрачность в зависимости от его приближения к следующему целому значению координаты?
То есть, если координата не целая, например, _x = 5.2, нижний битмап будет иметь координату _x = 5, а верхний — _x = 6, но при этом будет иметь прозрачность (5.2-5)*100 = 20%. Это будет имитировать анти-алиасинг.

Примеры:

примеры роликов

Файлы:

plawny_medl_BMP.zip — zipped .fla (12Кб)

!Облака для примера взяты из работы екатеринбургской студии «Софтмажор»сайт компании «Европорт».

fla-файл в архиве описывает первый вариант, остальные файлы относятся ко второму варианту. Во втором случае — битмап, подгружаемый извне.

Недостатки:

  1. Первый вариант работает только с седьмой версией плеера
  2. Второй вариант потребляет ресурсы из-за покадрового пересчета прозрачности.

Комментарии (2)

mem: 1080 total: 11 module: 5 xsl: 3