Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 06.11.2011, 16:08
electr_o_n вне форума Посмотреть профиль Отправить личное сообщение для electr_o_n Найти все сообщения от electr_o_n
  № 1  
Ответить с цитированием
electr_o_n

Регистрация: Nov 2011
Сообщений: 1
По умолчанию Эффект водной ряби от курсора пользователя

Здравствуйте!

Вот проект:
http://allday.ru/index.php?newsid=120453

Вот код:

import flash.display.*;
import flash.geom.*;
import flash.filters.*;
img = BitmapData.loadBitmap("imagen");

w = img.width-1;
h = img.height-1;
pt = new Point();
Nx = new Matrix();
Mx = new Matrix();
Mx.scale(2,2);
fz = 70;// fz: fuerza del oleaje de 0 en adelante;
v = (255/256)-1/100000;
sal = new BitmapData(w/2, h/2);
sal1 = sal2=new BitmapData(w, h);
ori = acum=new BitmapData(w/2, h/2, false, 128);
attachBitmap(sal2,0);
ola = new ConvolutionFilter(3, 3, [1, 1, 1, 1, 1, 1, 1, 1, 1], 9);
ade = new ColorTransform(0, 0, v, 1, 0, 0, 2, 0);
agua = new DisplacementMapFilter(sal2, pt, 4, 4, fz, fz);

onEnterFrame = function () {
pul = true;
clearInterval(ID);
ID = setInterval(onda, 10);
};

function onda() {
if (pul) {
cont = 0;
ori.setPixel(_xmouse/2,_ymouse/2,0);
agua.scaleY = agua.scaleX += 10*(agua.scaleX<(fz-10));
} else {
cont++;
if (cont>fz) {
agua.scaleY = agua.scaleX -= 5*(agua.scaleX>50)+.25;
}
}
sal.applyFilter(ori,new Rectangle(0, 0, w/2, h/2),pt,ola);
sal.draw(sal,Nx,null,"add");
sal.draw(acum,Nx,null,"difference");
sal.draw(sal,Nx,ade);
sal1.draw(sal,Mx,null,null,null,true);
sal2.applyFilter(img,new Rectangle(0, 0, w, h),pt,agua);
acum = ori;
ori = sal.clone();
if (agua.scaleX<=0) {
agua.scaleY = agua.scaleX=fz;
cont = 0;
clearInterval(ID);
}
}


Задача_1: применить эффект к анимации на сцене

Проблема: данный код применяет эффект только к импортируемой картинке из библиотеки

Задача_2: применить эффект ко всему что есть на сцене, привязав начало эффекта к любому кадру

Проблема:
1. У меня эффект начинается с 40 кадра (соответственно скрипт я записал в 40 фрейм). Проявляется это резким миганием, как если бы после 40 кадра, пару кадров у меня пустые.
Как исправить это мигание?

2. Когда ролик начинается с начала, в нем остаются артефакты (картинка бутылки которая импортируется в скрипте для реализации эффекта). Как сделать так: ролик пуст от эффекта до 40 кадра, после эффект доступен, так по кругу.

Спасибо!

Создать новую тему Ответ Часовой пояс GMT +4, время: 03:23.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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