Ваш аккаунт: пройдите авторизацию

Авторизация

Пароль есть, но Вы его забыли?
Впервые на сайте? Зарегистрируйтесь!

Вы попали в мир графики и дизайна


Изюминка нашего сайта в том, что все файлы хранятся на наших серверах, поэтому Вы получаете круглосуточный доступ ко всем файлам по прямым ссылкам без регистрации! С нашим сайтом Вы забудете про файлообменники!


Блестящий контур



В этом уроке мы создаём блестящий контур предмету. Данный эффект позволит вам несложно превратить какой либо рисунок в блестящий контур.

И так приступим.
Не буду вникать в детали (урок не для совсем новичков).

1. Создадим документ AS2, 250х250, 30 кадров.
2. На главном слое рисуем то что будем конвертировать в блестящий контур. затем конвертируем то что нарисовали в мувиклип и присваиваем ему Instance Name: main_mc. важно! размещать содержимое в клипе надо в 0:0
У меня это лого студии...

alt

3. идем дальше теперь нам понадобятся два клипа один это "свечение" второй "блеск"(звездочка)
3.1. "Свечение" клип с каким то световым пятном. У меня это кружки с полупрозрачной радиальной заливкой. Все делается по вкусу но в итоге мы должны получить мувиклип размером 30х30 пикселей (чем больше в нем будет всякий изысков тем больше все будет тормозить). Создали? теперь удаляем и идем в библиотеку объектов. Там выбираем наш клип > Наживаем Правую кнопку мыши > выбираем Linkage, ставим галочку напротив Export for Action Script и прописываем Identifier:dot_mc. Важно! размещать содержимое внутри клипа надо по центру

alt

3.2 "Блеск" клип с четырехконечной звездочкой. все по аналогии с предыдущим элементом только Identifier:sun_mc Важно! размещать содержимое внутри клипа надо по центру

alt

4.Теперь нужен какой нибудь фон. Он у нас будет прикрывать main_mc и просто играть эстетическую роль.
Создаем новый слой. и на нем располагаем прямоугольник в размер сцены и помещаем его в 0:0 заливаем по вкусу. У меня радиальный градиент от бардового к черному.

5.Теперь код который вдохнет в то все жизнь.
Создаем новый слой. и в нем пишем следующее:

CODE
interval = 5; // интервал с которым будут расставляться точки (так же влияет на количество точек)
startx = main_mc._x; // определение области расстановки точек (активная область клипа)
starty = main_mc._y; //
stopx = main_mc._x + main_mc._width+interval;//
stopy = main_mc._y + main_mc._height+interval;//
massx = new Array(); // массив для хранение координат х
massy = new Array(); // и y
i=0; // просто счетчик:)

//далее мы пробегаемся по всей области нашего main_mc и проверяем какая точка возвращается нам Хит тест но в массив координат мы записываем только точки которые располагаются по краю...
for (y=starty; y<stopy; y+=interval){
for (x=startx; x<stopx; x+=interval){
 if (_root.main_mc.hitTest(x,y,true)){
  if (!_root.main_mc.hitTest(x-interval,y,true) || !_root.main_mc.hitTest(x,y-interval,true)){
   massx[i]=x;
   massy[i]=y;
   i++;
  }

 }
 if (!_root.main_mc.hitTest(x,y,true)){
  if (_root.main_mc.hitTest(x-interval,y,true) || _root.main_mc.hitTest(x,y-interval,true)){
   massx[i]=x;
   massy[i]=y;
   i++;
  }
 }
}
}
// все. пробежались. теперь изходя из полученного массива с координатами начинаем выставлять заготовленные ранее мувиклипы
for (i=0;i<massx.length;i++){
dot = this.attachMovie("dot_mc", "dot"+i+"_mc", this.getNextHighestDepth());// свет
dot._x = massx[i]+((interval)*Math.random()); // для то что бы все точки не стояли в ряд. Добавляем немного хаоса в расстановку
dot._y = massy[i]+((interval)*Math.random());
dot._width = dot._height = 40*Math.random(); // определяем начальный размер

sun = this.attachMovie("sun_mc", "sun"+i+"_mc", this.getNextHighestDepth());// звездочки
sun._x = massx[i]+((interval)*Math.random());
sun._y = massy[i]+((interval)*Math.random());
sun._width = sun._height = 20*Math.random();// определяем начальный размер

//написанные далее условия помещены сюда для того что бы хоть немного облегчить работу компьютера при рисовании этого всего
if(i%7==0){ // событие изменения размера звездочек присваивается только каждому 7 мувиклипу со звездочкой
 sun._width = sun._height = 50*Math.random(); // начальный размер
 sun.onEnterFrame = function(){
  if(this._width > 50){ // если звездочка достигает нужного размера
   this._width = this._height = 50*Math.random(); // сбросить размер на случайный
  }
  this._width = this._height +=0.3; // и прибавлять размер пока она опять на достигнет нужного размера
  this._rotation +=2;
 }
}

if(i%1==0){ // здесь стоит 1 ... каждому созданному клипу со свечением будет присвоен данный onEnterFrame ( нужно было для отладки ... оставил на всякий случай. вдруг надо будет уменьшить влияние на проц:))
 dot.scalestop = 50*Math.random(); // стартовый размер
 dot.onEnterFrame = function(){
  if(this._width < this.scalestop+1 && this._width > this.scalestop-1){ // если размер попал в определенные рамки то установить новый конечный размер
   this.scalestop = 50*Math.random();
  }
  this._width = this._height -=(this._width-this.scalestop)/8; // и следовать к нему
 }
}
}

//занавес:)


Вот собственно и все.

Исходник берём здесь:

Нажмите для скачивания blesk.zip!
Название: blesk.zip
Размер: 17.51 Kb



Внимание! Вы находитесь на сайте как гость! Зарегистрируйтесь или авторизируйтесь...

Нет времени на регистрацию? Можете войти на сайт через ВКонтакте! Это просто, быстро и удобно!

Похожие материалы

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.