Очень просто урок и в тоже время очень сложный для тех кто не знает 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 разноцветных шариков, которые при движении мыши, приследуют ее!
Исходник урока здесь >>>
|