WebDix
Это веб-диз, детка!Выпуск #9 | 11 октября 2006
Введение
Веб-дизайн
Раскрутка
Веб-заработок
Программирование
Photoshop CS
Flash
RusForumz
Новости
Интересности
Быстрый переход
WebDix › Выпуск #9 › Flash

Эффект - квадраты

Автор: Nikitar
http://rusforumz.com

Долго думал как называть этот эффект (результат вы можете увидеть внизу этой страницы) и назвал его всё-таки "Эффект - квадраты" - просто и понятно. В чём его суть? Мы разработаем скрипт, который позволит размещать одинаковые квадраты на любой картинке с разной степенью прозрачности.

Итак по пунктам, как мы это будем делать:

1. Открываем Flash (любая версия от 6-й).

2. Создаём новый документ, размеры можно любые, но желательно подогнать под картинку, которую мы сейчас будем импортировать, и fps тоже желательно сделать 25.

3. Выберите какую-нибудь фотографию (по типу той, которую я выбрал) и вставьте её в flash-документ с помощью команды File (Файл) - Import (Импорт).

4. Разместите картинку в документе, подгоните размеры ролика под неё и преобразуйте её в ролик с помощью клавиши F8 (выделите картинку и нажмите F8). Теперь выделите мувиклип и в instance name (имя экземпляра) задайте имя img.

Instance name, скриншот

5. Теперь рисуем собственно квадратик. Небольшой. Где-то 20 на 20, лучше с границей серой, ну это уже на своё усмотрение, можно и на круг сменить, эффект всё равно будет одинаковым. Нарисовали? Теперь выделяем его (с линией) и преобразуем в мувиклип. Затем удаляем этот мувиклип со сцены. И идём в библиотеку. В библиотеке ищем этот символ, правая кнопка - Linkage (Связь) и пишем его имя w, предварительно расставив галочки как на скриншоте.

Библиотека символов

Linkage

6. Продолжаем и теперь будем заниматься самым важным - кодом. Создайте новый слой в главной сцене, поверх того, что с картинкой. Выделите кадр и откройте панель Actions (Действия), туда мы будем писать код.

ActionSciptCode

imgwidth=img._width;
imgheight=img._height;
size=20;
wnumber=Math.ceil(imgwidth/size*imgheight/size);
for(i=0; i<=wnumber-1; i++){
    attachMovie("w","w"+i,i);
    this["w"+i]._y=size*Math.floor(i/Math.ceil(imgwidth/size));
    this["w"+i]._x=size*(i-Math.ceil(imgwidth/size)*Math.floor(i/Math.ceil(imgwidth/size)));
    this["w"+i]._alpha=random(30)

    this["w"+i].onRollOver=function(){
      this._alpha+=50;
      this._xscale+=20;
      this._yscale+=20;
    }
    this["w"+i].onRollOut=function(){
      this._alpha-=50
      this._xscale-=20;
      this._yscale-=20;
    }
    }


Кратко объясню, что это мы делаем с помощью этого кода.

Первыми двумя строчками мы задаём переменные, которые вычисляют ширину и высоту картинки, это нужно нам для того, чтобы потом определить сколько квадратиков размещать в ширину и в высоту. Далее переменная size - собственно сам размер квадратика. Так как это квадрат, то ширина и высота у него одинаковая, поэтому и одна переменная.

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

Делаем цикл, и в цикле присоединяем из библиотеки мувиклип с помощью команды attachMovie(), после присоединения задаём им координаты по оси X и по оси Y, для этого применяем специальную формулу, которая позволит определить ряд и столбец для каждого квадратика без всяких условных операторов.

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

Следующие 2 функции обрабатывают события при наведении и уводы курсора мыши. У меня при наведении прозрачность уменьшается, становится лучше видно квадратик, и увеличивается его размер. Следовательно, при уводе курсора всё возвращается на своё место. Ну и не забываем закрыть цикл.

7. В принципе всё. Жмём Ctrl+Enter и вы должны увидеть что-то вроде того, что ниже.



« Сколько получает flash-аниматор?СодержаниеНовости »
Выпуск подготовили: Exact, Nikitar, Psi, Alisha |  Copyright RusForumz.com 2006
Перепечатка материалов возможна только с письменного разрешения администрации
Журнал WebDix («Это веб-диз, детка!»), 2006-2008.
Сайт журнала: webdix.ru · форум: rusforumz.com
Об архиве
Рейтинг Old-Web