Cara Membuat Animasi Keren ‘circle’ 3d
1. Buat dokumen baru pada flash dengan ukuran 300 x 300 pixel.
2. Buat sebuah movieclip dengan judul ‘circle’.
3. Gambar apa saja, terserah anda. Namun, dalam tutorial kali ini, akan dibuat gambar persegi dengan fill colour berwarna merah, dan stroke colour berwarna merah.
4. Klik frame 2 dan 3, lalu tekan F6 untuk membuat keyframe.
5. Pada frame 1, berikan actionscript di bawah ini;
function Rotator(x, y, count) { this.x = x; this.y = y; this.ry = 0; this.rz = 0; this.radius = 80; this.count = 0; this.init(Number(count)); } Rotator.prototype.init = function(count) { for(var i = 0; i < this.count; i++) _root["circle"+i].removeMovieClip(); this.count = (count < 0) ? 0 : count; for(var i = 0; i < count; i++) _root.attachMovie("circle", "circle" + i, 1000+i); }; Rotator.prototype.render = function() { var x, y, z, prev_x, value, dist, persp = 200; var angle = this.rz, delta = (Math.PI*2)/this.count; var sin_rz, cos_rz; var sin_ry = Math.sin(this.ry); var cos_ry = Math.cos(this.ry); for(var i = 0; i < this.count; i++, angle+=delta) { sin_rz = Math.sin(angle); cos_rz = Math.cos(angle); x = this.radius * cos_rz; y = this.radius * sin_rz; prev_x = x; x = prev_x * cos_ry; z = -prev_x * sin_ry; if(z > persp) _root["circle" + i]._visible = false; else { dist = persp/(persp - z); value = 100 * dist; with(_root["circle" + i]) { _x = x * dist + this.x; _y = y * dist + this.y; _xscale = value * cos_ry; _yscale = value; _alpha = value * dist; _visible = true; } } } }; /////////////////////////////////////////////////////////////////////////////// drag = false; prev_x = 0; prev_y = 0; dx = 0.01; dy = 0.1; r = new Rotator(Stage.width/2, Stage.height/2, 9); /////////////////////////////////////////////////////////////////////////////// onMouseDown = function() { prev_x = _xmouse; prev_y = _ymouse; drag = true; stop(); }; onMouseUp = function() { drag = false; play(); }; onMouseMove = function() { if(this.drag) { r.ry += (dx = (_xmouse - prev_x) / 20); r.rz += (dy = (_ymouse - prev_y) / 20); r.render(); prev_x = _xmouse; prev_y = _ymouse; } }
6. Pada frame 2, berikan actionscript di bawah ini:
if(Key.isDown(Key.INSERT)) r.init(r.count+1); else if(Key.isDown(Key.DELETEKEY)) { if(r.count > 1) r.init(r.count-1); } else if(Key.isDown(Key.HOME)) r.radius += 10; else if(Key.isDown(Key.END)) r.radius -= 10; r.ry += dx; r.rz += dy; r.render();
7. Pada frame 3, berikan actionscript di bawah ini:
gotoAndPlay(2);
8. Test movie anda dengan menekan Ctrl + Enter.
9. Gunakan fungsi – fungsi berikut:








1 komentar:
Mantab ben!!
Poskan Komentar