PDA

Просмотр полной версии : MovieClip + Filter + Smoothing


DRAGOnoid
29.06.2007, 17:05
делаем такую простую вещь:
на главной сцене размещаем 2 одинаковых ролика и называем их mc3 и mc4.

import flash.filters.*;
this.mc4.filters = [new GlowFilter(0x00FF00, 200, 10, 10)];
this.onEnterFrame = function () {
this.mc3._x+=0.1;
this.mc4._x+=0.1;
};

на один из мувклипов наложится фильтр и если первый перемещается плавно, то второй заметно скачет (плюсуется на 1 а не 0.1) я конечно понимаю что это связанно с вствроенным включением CacheAsBitmap.
Однако даже графические рисунки (изменяя свойства в библиотеке) можно заставить передвигаться сглаженно.. У меня вопрос - в моём случае с фильтром можно ли как то сделать сглаженное перемещение мувклипа с наложенным фильтром?

silin
29.06.2007, 17:45
мне кажется ты заблуждаешься, считая, что незафильтрованный мувик движется плавно: оба движутся с дискретностью в 1 пиксель, хотя разница есть.., думаю, что из-за того, что у второго сместились координаты и прирост в 1 пиксель приходится на другой такт плеера..
в таком, например раскладе, они поехали у меня совершенно одинаково
import flash.filters.*;
this.mc4.filters = [new GlowFilter(0x00FF00, 200, 10, 10)];
mc4._x+=0.5;
this.onEnterFrame = function () {
this.mc4._x+=0.1;
this.mc3._x+=0.1;
};
у меня нет внятных предположений что здесь и как.., тока не двигает никого плеер на дробные величины, т.е. даже если ты протрейсишь координаты в ентерФраме, то напишет по дробному, а покажет/перерисует все равно на целых значениях..

DRAGOnoid
29.06.2007, 18:46
вот глянь файл - там характерно видно что нижний дёргается и двигается дискретно 1 а верхний плавно...

http://dragon.auditory.ru/uploads/sm.zip

silin
01.07.2007, 01:30
дада, есть такая беда, причем если первый закешировать, то он тож начинает дергаться: надо бы это щупать..в чем подвох
нет, к сожалению, сейчас возможности..

DRAGOnoid
01.07.2007, 08:29
я сам это дело исследовал и есть кое какие предположения...
Есть функция cacheAsBitmap - если например поставить её тру
this.mc3.cacheAsBitmap = true;
то мувик будет дёргаться...
теперь простое исследование
второй у нас с фильтром trace (this.mc4.cacheAsBitmap); // выдаст true

т.е. посути вопрос - можно ли как то сделать движение мувклипа сглаженный если на нём cacheAsBitmap (вариант на AS3 тоже сойдёт)

etc
01.07.2007, 10:47
Ну если не жалко ресурсов процессора на постоянный перерасчет, сделай в мувик два одинаковых кадра. Затем во втором слоем выше нарисуй прозрачный (совсем) прямоугольничек.