![]() |
|
||||||||||
|
|
|
|||||
|
Регистрация: Feb 2006
Сообщений: 580
|
Пример эффекта "displacement"
Сделал с помощью проги CoolMovies. Но там это встроенный эффект. Мне интересно, как сделать в flash8 тоже самое. Подскажите как? ![]() |
|
|||||
|
Квач
Регистрация: Sep 2006
Адрес: Украина, Киев
Сообщений: 1,526
|
2 pkfun:
Флешка сделана с помощью пиксельных трансформаций. Обьект BitmapData... Perlin Noise с препроцессингом из 30 кадров, кажется... Последний раз редактировалось Хемуль; 30.09.2006 в 00:52. |
|
|||||
|
Регистрация: Feb 2006
Сообщений: 580
|
Там оказалось, что авторы приложили, в отдельной папке код AS. Так что код у меня есть.
Используется: flash.display.BitmapData, flash.filters.DisplacementMapFilter, perlinNoise Хемуль Спасибо за ответ. ![]() |
|
|||||
|
ого...
|
|
|||||
|
Регистрация: Feb 2006
Сообщений: 580
|
Ура! Все сделал.
![]() ps. правда чтобы разобраться с кодом, все равно пришлось долго изучать help. Там какой-то сокращенный вариант и сильно привязаный к самой проге-редактору. |
|
|||||
|
Квач
Регистрация: Sep 2006
Адрес: Украина, Киев
Сообщений: 1,526
|
Цитата:
__________________
Да не нужно тебе читать документацию по Flash и AS от Adobe - ты слишком умён для этого |
|
|||||
|
Регистрация: Feb 2006
Сообщений: 580
|
Программа редактор это собственно KoolMovies и есть.
Для того чтобы было понятно как код завязан на эту программу, выкладываю вариант который лежит открыто в папке MotionScripts этой программы(разработчики в help сами указывают на эту папку, для тех кто хочет сам поэксперементировать со встроенными эффектами)://В этой функции задаем параметры эффекта. Она выполняется ОДИН раз.
// main_init function
main_init = function(mc){
subs_done = true;
i1 = new flash.display.BitmapData(mc._width,mc._height,0,0x808080);
i2 = i1.clone();
perlin ? i2.perlinNoise(base_x,base_y,octaves,new Date(),0,1,6) : i2.noise(new Date());
filter = [new flash.filters.DisplacementMapFilter(i1,i1.rectangle.topLeft,4,2,disp_x*2,disp_y*2,'color')];
if (!out_effect) mc._alpha = 0;
}
//Это сам эффект. Выполняемся столько раз сколько надо.
//Первое срабатывание сильно искаженный объект, последнее нормальный.
// main_effect function
main_effect = function(mc,frame){
p = frame / lastsubframe;
if (!out_effect) p = 1 - p;
i1.fillRect(i1.rectangle,0x80808080);
i1.merge(i2,i2.rectangle,i2.rectangle.topLeft,0,p*256,p*256);
mc.filters = filter;
mc._alpha = 100-p*100;
if (scaling) mc._xscale = mc._yscale = mc._alpha;
if (frame == lastsubframe){
mc.filters = undefined;
end_effect = true;
i2.dispose();
i1.dispose();
}
}
// sub_init function
sub_init = function(mc){
}
// sub_effect function
sub_effect = function(mc,frame){
}
![]() Последний раз редактировалось pkfun; 01.10.2006 в 19:12. |
|
|||||
|
Регистрация: Jul 2006
Сообщений: 12
|
выложите плз код
|
![]() |
![]() |
Часовой пояс GMT +4, время: 04:08. |
|
|
« Предыдущая тема | Следующая тема » |
|
|