Thursday, April 28, 2016

Menyapa Senjata Lama.


Sudah lama tidak otak-atik Macromedia Flash.

Yup, masih yang Macromedia, bukan Adobe, :) .

Membuat animasi bola bermuatan (atau elektron) yang bergerak lurus dengan kecepatan konstan tiba-tiba mencapai daerah dengan  medan magnet. Sesuai hukum Lorentz maka bola/elektron akan bergerak melengkung.

Action script hanya ditulis pada action di frame pertama layer background.






px0 = bola._x;
py0 = bola._y;
awal();
_root.onEnterFrame = function() {
 if (jalan == true) {
  proses();
 }
 //trace(jalan)                         
};
function awal() {
 jalan = false;
 bola._x = px0;
 bola._y = py0;
 q = 1;
 B = 1;
 tB.text = B;
 //massa
 m = 1;
 tm.text = m;
 //kecepatan
 vx = 50;
 vy = -10;
 tvx.text = vx;
 tvy.text = vy;
 //percepatan
 ax = 0;
 ay = 0;
 //posisi
 px = 0;
 py = 0;
 dt = 1/8;
}
function bacaInput() {
 vx = Number(tvx.text);
 vy = Number(tvy.text);
 m = Number(tm.text);
 B = Number(tB.text);
}
function updateNilai() {
 tB.text = B;
 tm.text = m;
 tvx.text = vx;
 tvy.text = vy;
}
function proses() {
 v = Math.sqrt(vx*vx+vy*vy);
 if (bola._x>200) {
  F = B*q*v;
 } else {
  F = 0;
 }
 a = F/m;
 //arah vektor normal v
 nvx = vx/v;
 nvy = vy/v;
 /*arah vektor percepatan
 karena vektor yang tegak lurus a=(ax,ay) adalah at=(-ay,ax)
 */
 nax = -nvy;
 nay = nvx;
 ax = a*nax;
 ay = a*nay;
 //hitung kecepatan baru
 vx += ax*dt;
 vy += ay*dt;
 px += vx*dt;
 py -= vy*dt;
 trace(F);
 //update posisi bola
 bola._x = px0+px;
 bola._y = py0+py;
 updateNilai();
}
//tombol-tombol
//tombol tbJalan
tbJalan.onRelease = function() {
 bacaInput();
 jalan = true;
};
tbStop.onRelease = function() {
 jalan = false;
};
tbReset.onRelease = function() {
 awal();
};


.