Пятница, 19.04.2024, 22:43
| RSS
Главная | Каталог статей
Меню сайта
Интересные даты
23.12.2008
рождение проекта
Категории каталога
ActionScript 1.0 | 2.0 [15]
Уроки по Акшин Скрипт версии 2.0
ActionScript 3.0 [0]
Уроки по Акшин Скрипт версии 3.0
Анимация [3]
Уроки по анимации, рисование во Flash
Разное [4]
Все остальное
Форма входа
Поиск
Друзья сайта
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Главная » Статьи » Уроки » ActionScript 1.0 | 2.0

Как создать движение объектов за курсором мыши?

Очень просто урок и в тоже время очень сложный для тех кто не знает Action Script. Для тех кто разборчив - просто вставить этот код (ниже выделенный синим цветом) в первый кадр пустого нового fla. 

Ну а тем кто ни бум-бум, немного поясню.

1. Создаем новый fla файл. File > New (Ctrl+N)

2. В свойствах выбераем размер нашего swf файла 550х400px / fp 12

3. В первый кадр первого (единственного) слоя вствляем этот код:

var objectList:Array = new Array();

//создаем объкеты
for (var i:Number = 0; i<10; i++) {
 var mc:MovieClip = createEmptyMovieClip("circle_mc"+i, i);
 objectList.push(mc);
 mc._x = Math.random()*550;
 mc._y = Math.random()*400;
 //случайный коэффициент замедления
 mc.k = Math.random()*0.1+0.02;
 drawCircle(mc,Math.random()*5+10,Math.random()*0xffffff,100);
}
onEnterFrame = function () {
 //движения объектов за мышкой
 for (var i:Number = 0; i<objectList.length; i++) {
  var mc:MovieClip = objectList[i];
  mc._x += (_xmouse-mc._x)*mc.k;
  mc._y += (_ymouse-mc._y)*mc.k;
 }
 //столкновения
 for (var i:Number = 0; i<objectList.length; i++) {
  var mc1:MovieClip = objectList[i];
  var r1:Number = mc1._width*0.5;
  for (var j:Number = 0; j<objectList.length; j++) {
  var mc2:MovieClip = objectList[j];
  var r2:Number = mc1._width*0.5;
  var dx:Number = mc1._x-mc2._x;
  var dy:Number = mc1._y-mc2._y;
  var len:Number = Math.sqrt(dx*dx+dy*dy);
  if (mc1 != mc2 && len<r1+r2) {
  mc1._x += 0.5*(r1+r2-len)*dx/len;
  mc1._y += 0.5*(r1+r2-len)*dy/len;
  mc2._x -= 0.5*(r1+r2-len)*dx/len;
  mc2._y -= 0.5*(r1+r2-len)*dy/len;
  }
  }
 }
};
function drawCircle(target_mc:MovieClip, radius:Number, fillColor:Number, fillAlpha:Number):Void {
 var x:Number = radius;
 var y:Number = radius;
 with (target_mc) {
  beginFill(fillColor,fillAlpha);
  moveTo(x+radius,y);
  curveTo(radius+x,Math.tan(Math.PI/8)*radius+y,Math.sin(Math.PI/4)*radius+x,Math.sin(Math.PI/4)*radius+y);
  curveTo(Math.tan(Math.PI/8)*radius+x,radius+y,x,radius+y);
  curveTo(-Math.tan(Math.PI/8)*radius+x,radius+y,-Math.sin(Math.PI/4)*radius+x,Math.sin(Math.PI/4)*radius+y);
  curveTo(-radius+x,Math.tan(Math.PI/8)*radius+y,-radius+x,y);
  curveTo(-radius+x,-Math.tan(Math.PI/8)*radius+y,-Math.sin(Math.PI/4)*radius+x,-Math.sin(Math.PI/4)*radius+y);
  curveTo(-Math.tan(Math.PI/8)*radius+x,-radius+y,x,-radius+y);
  curveTo(Math.tan(Math.PI/8)*radius+x,-radius+y,Math.sin(Math.PI/4)*radius+x,-Math.sin(Math.PI/4)*radius+y);
  curveTo(radius+x,-Math.tan(Math.PI/8)*radius+y,radius+x,y);
  endFill();
 }

}

Здесь мы создаем пустой MovieClip(), но можно заменить и на свои, подставив им имена в Instace Name и подредактировать Action Script.

Сохраняем и тестируем. Должно появится более 7-8 разноцветных шариков, которые при движении мыши, приследуют ее!

Исходник урока здесь >>>

Категория: ActionScript 1.0 | 2.0 | Добавил: admin (14.01.2009)
Просмотров: 8902 | Комментарии: 1 | Рейтинг: 0.0/0
Сделать бесплатный сайт с uCozCopyright by Flash Tehnologi © 2008-2024 | design by fred_ford