Tải bản đầy đủ (.pdf) (56 trang)

ứng dụng adobe flash cs5 thiết kế một số thí nghiệm mô phỏng trong trình vật lý lớp 12

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.97 MB, 56 trang )



PHN I. M U 1
1. Lý do chn  tài 1
2. Mu 2
ng nghiên cu 2
4. Nhim v nghiên cu 2
u 2
6. Cu trúc khoá lun 2
7. K hoch thc hin 2
PHN II. NI DUNG 3
u phn mm Adobe Flash CS5 3
1. Khng phn mm 3
2. Giao din  4
3. ActionScript trong Flash 5
4. To chuyng bng cách vit mã lnh 7
  ng dng Adobe Flash CS5 thit k mt s thí nghim mô
pht lý 12 11
1. Thí nghim v con lc lò xo 11
2. Thí nghim v con l 15
3. Con l









(



) 20
4. Con lc vt lý 27
ng tt dn 29
6. Thí nghim minh ha mi liên h giu hòa và chuyng
u 32
7. Thí nghim minh ha sóng dc 34
8. Thí nghim minh ha sóng ngang 37
9. Thí nghim so sánh sóng dc và sóng ngang 40
10. Thí nghim mô phn xoay chiu mt pha, ba pha 43
11. Thí nghim v  48

PHN III: KT LUN VÀ KIN NGH 51
1. KT LUN 52
2. KIN NGH 53
TÀI LIU THAM KHO 54










1


1. Lý 

Ngày nay công ngh thông t thành mn tr giúp
c lc cho giáo viên, hc sinh trong quá trình dy và hc
mô phng li các thí nghim vt lý, hing vt lý nhm giúp hc sinh hình
c mt cách d dàng nht v các hing vt lý t  gii
quyc nhp phi trong vic truyi kin thc,
mà nguyên nhân là hc sinh không th c hing.
Hin nay có rt nhiu phn mm có th n ln các
phn mm mô phng hi  u xut phát t c ngoài nên nhiu phn
không sát va chúng ta và không phi hing vt lý nào
 th hi ci dy l
khc phc nh tôi u phn mm Adobe Flash, là mt
phn mm rt phù hp cho vic mô phng các hing vt lý.
Adobe Flash là phn mm v hình cho phép to hình ng, có các hiu ng
chuyng và bii, l to ra các hong mô ph
mt cách ng, hp dn. Flash là công c mnh nht có th to ra hot hình ln
mô phi hc có th ng trong các file flash mô
phng và to ra các hot hình (animation) trong khi thit k các thí nghim. File
flash có th kt hp d dàng vi Violet ho to thành mt bài ging
hoàn chnh. Và vi s h tr  m file flash ca hu ht các trình duyt web hin
c sinh có th t làm, t thc hành, t
hoàn thành các yêu cu ca i thit k thit k thí nghim o bng vi
tác trc ting trong file flash mô phng. Vi phn mm Adobe
Flash, chúng ta có th thit k , thí nghim hoc tt c nhng
yu t  dy vt lý cho hc sinh.
Adobe Flash có rt nhiu phiên bn, phiên bn sau là phiên bn nâng cp ca
phiên bc và có thêm nhiu ci tin. Lua tôi s dng phiên bn
CS5 là phiên bn xua Adobe Flash. Và vi vic la chn
khóa lun “Ứng dụng Adobe Flash CS5 thiết kế một số thí nghiệm mô phỏng
trong chương trình vật lý lớp 12” ng nghiên cu. Tôi mong mun
2


hc hi, nâng cao, khai thác ng dng công ngh thông tin trong vic thit k
các thí nghim mô phng hing vt lý nhm h tr công tác ging dy sau
này. Hy vng rng lu là mt tài liu hu ích cho các sinh viên ngành
Sm vng dy  ng THPT.

Tìm hiu phn mm Adobe Flash CS5 và ng d thit k mt s thí
nghim mô phng các hing vt lý lp 12.

- Phn mm Adobe Flash CS5
- Sách giáo khoa vt lý lp 12

- Tìm hiu cách s dng phn mm Adobe Flash CS5
- ng d thit k mt s thí nghim mô phng các hing vt lý trong
t lý lp 12.

- Nghiên cu tài liu
- Thc hành thit k bng phn mm Adobe Flash CS5 trên máy tính
 
- Phn I. M u
- Phn II. Ni Dung
i thiu phn mm Adobe Flash CS5
ng dng Adobe Flash CS5 thit k mt s thí nghim mô phng
các hing vt lý 12
- Phn III. Kt lun
- Tài liu tham kho
  
- T m tài li t
- T n tháng 3/2014: thit k các thí nghim
- Tháng 4/2014: hoàn thin khoá lun


3



Hii qua rt nhiu phiên bn khác nhau. Vi phiên
bn CS5, xu sung vào nhi
i dùng thit k và lp tri mc dích tn dc
nhng nâng cp ca phiên sau tác gi ca lu n phiên bn CS5 ca
Adobe Flash v là Adobe Flash Professional CS5 trên nn giao din
 ng nghiên cu.

t thành công phn mm vào máy tính ta có th khng phn
mm bng nhiu cách:
Khởi động từ Star menu (bắt
đầu):
Trong giao din Star menu di
chuyn và ch n bi ng
ca phn mm Adobe Flash
Professional CS5 ( 1) 
click chut trái hoc nhn Enter
trên bàn phím.
Khởi động từ hộp thoại tìm kiếm:
Di chuyn con ch chut
vào góc màn hình bên phi ca
màn hình Deskop  n
chsearch trên window
8, vit vào hp thoi tìm kim
dòng ch    n
vào bi ng Adobe Flash

Professional CS5 ( 2) ri
click chut trái hoc nhn
Enter trên bàn phím.
(hình 1)
(hình 2)
4



 xong, 
trình màn hình Splash - màn hình
  a Adobe Flash
Professional CS5 s hin ra (3)
Sau khi quá trình kh ng
hoàn tt ta s thy có giao din sau
 (4)
Flash CS5 cho phép làm vic
theo ch  Tab. Trên vùng thanh
menu,  góc bên phi mc
Essentials cho phép ta chuyi
qua li gia các cách b trí giao
din. Có 6 ch  b trí giao din:
Animator, Classic, Debug, Designer, Developer và Essentials. Vi ma
khóa lun là to hot hình mô phng thí nghim nên tôi chn ch  Animator
và ActionScript 2.0.

 Stage (sân khu)
Stage là vùng màn hình mà ta v vào và là vùng trình dic
xut bn.
(hình 4)

(hình 3)
(hình 5)
5

 Toolbox (hp công c)
Toolbox bao gm các công c v hình, chnh sa hì
 Panels (bng ch
Các bng (panel) c nhng công vic x ng trên
sân khnh (Align), chnh kiu màu (Color Mixer, Color Swatches),
các phép bin hình: xoay hình, phóng to thu nh
Có th cho gi các bng t menu Window.
 Timeline (bng tin trình)
Bng tin trình t chu kin v v thi gian cho phim.
 Layers (các lp)
Giúp t chc trt t i cng hình v.
 n).
 các tài nguyên cn phim.
 Properties (bng thuc tính).
Cho ta bit thuc tính c  ng (màu nn, t  hình nh, kích c
 hình nh (màu nét, màu n rng nét ), các thông s trong các
chuyng (t nhanh dn hay chm dn, quay theo chi
3. ActionScript trong Flash
Mã lnh ActionScript (code AS) là mt dng ngôn ng lc xây
dng trong Flash. ta  hin bng ting
Anh.
* Thứ nhất, ta cần biết là AS sẽ được viết ở đâu? Có  chúng ta có th vit
AS, là:
- Trên Timeline,  bt k Frame nào
- Trên nút (button), có AS thì nút m hot
ng khi có chut hong lên nó mà thôi.

- n phim (MovieClip), hong ca MC s rng nc
kèm theo AS, có th ng xuyên vit AS.
* Thứ hai, ta cần biết là viết AS như thế nào?
6

 vit AS thì rn, ta chn
 nh s vit AS (có th
là mt Frame trên TimeLine, mt nút
hay mt MC). Ti bng Actions
(phím tt F9) ri vit AS vào vùng trng
bên phi. Bên trái là các mã lnh có sn
ca Adobe Flash CS5, ta có th tham
kho nu quên mã lnh.
* Thứ ba, ta sẽ tìm hiểu một vài AS cơ bản.
- Cu trúc cú pháp ca mt câu lnh nói chung thì gm 3 phn chính:
Key Word (Event) {Actions}; Tạm dịch là: T khóa (S king};
Mt câu lng kt thúc bng du (;). Nu mm sau du
i chú thích cho phn code AS mà tác gi va vit nhm
c d hinh và s
không thc hin.
- i vi AS trên TimeLine: ra lnh trc tip cho TimeLine thc hin mt
hành i mt Frame mà ta mong mun, không cn thông qua
t khóa hay s kin nào c. Mt s     ng trên

gotoAndPlay (n); // khi ti frame này thì s nhn t ng chy t frame
th n.
gotoAndStop (m,n); // nhn và dng ti frame th n ca phân cnh th m.
 là 2 cách nhy frame, mi câu lu có th dùng 1 trong 2 cách
nh
play (); // chy frame này.

stop (); // dng ti frame này.
nextFrame (); // tin ti frame tip theo.
prevFrame (); // lùi l
nextScene (); // tin ti phân cnh tip theo.
prevScene (); // lùi li phân c
(hình 6)
7

stopAllSounds (); // di âm thanh ti frame này.
- i vi AS trên nút ng có câu lnh dng: on (s king };
tc là sau s king trong {} s c thc hin. Mt s code
dùng trên nút là:
ng ging trên TimeLine}; // press là s kin nhn chut
lên nút.
   ng ging trên TimeLine}; // release là s kin nhn
chut lên nút và sau khi th chung s c thc hin.
- i vi AS trên MC ng có câu lnh dng: onClipEvent (s kin)
ng};
Mt s s kin dùng trên MC là: load (khi MC chn
phim Flash bu chy), mouseDown (nhn chut lên MC), mouseMove (di
chuyn chu chut tr
Mt s u có th nhn và kéo MC),
stopDrag (dng nhn và kéo MC), this._x (cho bit t x ca MC), this._y
(cho bit t y cng quay MC mt góc r
 += V (quay MC theo mt t 
a (th hi m ca MC theo t l a% vi 0< a <100), this._visible = v (th
hi trong sut ca MC theo tì l 
lnh trên có th thay bng câu lnh _parent.tên MC. Ví d _parent.xedap._x (
cho bit t x cp).
Kt hp s king vào cú pháp  trên ta s có nhn code


Ngoài ra ta  u khin MC hay nút bng cách vit mã lnh trên
TimeLine.
- Mt s ln  : l  u kin ràng bu  ng}, lnh
 ly t chut, mt s 

Ta s chèn mã lnh ActionScript vào MovieClip
Vu tiên ta cn tc các MovieClip
8

Bước 1: chng (ví d
qu bóng)
Bước 2: nhn F8 chn loi
Type là MovieClip, chn v trí ca
    
cht tên cho MovieClip
 phn < Instance Name > trong Properties ca MC
To mt MovieClip trng (không ng): nhn Ctrl + F8
i vi chuyng tròn
Nhn code sau vào MC
onClipEvent (enterFrame) {this._rotation += 10;} // khi chy frame thì MC
s chuyng vi t 10 theo chiu (+) (cùng ching h)
onClipEvent (enterFrame) {this._rotation -= 10;} // khi chy frame thì MC s
i t 10 theo chiu (-c ching h)
Chy th  xem kt qu
Lưu : tâm ca chuyng này chính là tâm vùng thit k riêng ca MC, ta
có th to chuyng tròn vi nhng bán kính qu o khác nhau bng cách
chnh sa khong cách cng trong MC ti tâm này.
4.2. i vi chuyng thu
- Theo phương ngang thì dùng 1 trong 2 đoạn code sau:

onClipEvent (enterFrame) {this._x += 10;} // khi chy frame thì MC s 
vi t 10 theo chiu (+) (trái qua phi)
onClipEvent (enterFrame) {this._x -=10;} //khi chy frame thì MC s 
vi t 10 theo chiu (-) (phi qua trái)
- Theo phương đứng thì dùng 1 trong 2 đoạn code sau:
onCLipEvent (enterFrame) {this._y +=10;} //khi chy frame thì MC s 
vi t 10 theo chiu (+) (trên xung)
onClipEvent (enterFrame) {this._y -= 10;} // khi chy frame thì MC s 
vi t 10 theo chiu (-i lên)
(hình 7)
9

- Theo một phương bất kỳ, khi này ta cần biết hàm của y theo x : y = f(x) sau đó
dùng đoạn code có cấu tạo như sau:
onClipEvent (enterFrame) { this._x += speed ; this._y =f (this._x) ;}
VD: khi mun MC chuyng lên, tc là y = f(x) = x,
 n code:
onClipEvent (enterFrame) { this._x += 10 ; this._y = this._x ;}
//khi chy frame thì MC s i t  10 theo chiu trái qua phi và
ng lên góc 45
0

4.3. i vi chuyng thng chm du
- Theo phương ngang thì trước tiên ta cần đặt vật ở vị trí ban đầu, sau đó cần
xác định vị trí cuối cùng rồi dùng đoạn code sau:
onClipEvent (load) {
this._x = 0 ; this._y = 50; speed = 20; // mt bin tên speed, n
t di chuyn ca MC
nh v u là x = 0 và y = 50, có th b n code này nt
vt  v u

onClipEvent (enterFrame) { this._x += (400 - this._x)/speed;}
// khi chy frame thì MC bi v trí x bng cách cng thêm hiu
c      trí cui ta chn, (550,50)) và v   i chia cho
speed, phn cng thêm gim dn khi t m dn
- Theo phương đứng ta cũng làm tương tự, cần vị trí đầu và vị trí cuối sau đó
nhập
onClipEvent (enterFrame) { this._y += (400 - this._y)/speed;}
// khi chy frame thì MC bi v trí y bng cách cng thêm hiu
c      trí cui ta chn, (50,400)) và v   i chia cho
speed, phn cng thêm gim dn khi t m dn
- Theo một phương bất kỳ, khi này ta cần biết hàm của y theo x : y = f(x) sau đó
dùng đoạn code có cấu tạo như sau:
onClipEvent (load) {
this._x = v u ca x ; this._y = v u ca y; speed = t ;}
10

onClipEvent (enterFrame) {
this._x += (v trí cui ca x  this._x)/speed ; this._y = f (this._x);}
- Ta có thể tự tìm hiểu thêm để thay đổi hướng chuyển động của vật.
4.4. i vi chuyng thng nhanh du
 c là cng thêm mn thì
s có chuyng nhanh dn.
i vi các chuyng bt k khác
Ta ch cn nc ni dung liên h gia x, y ri cho chúng biu din qua
li lc.
VD: chuyng ném ngang có qu o là x = v.t, y = 1/2.g.t
2
nên s có
n code sau:
onClipEvent (load) {

this._x = 0 ; this._y = 0 ; t = 0; v = 50; g = 9.8;}
onClipEvent (enterFrame) {
t = t + 0.1; this._x = v*t ; this._y = 1/2*g*Math.pow(t, 2);} // hàm Math.pow
(s, s n ly)





11

             

lò xo
* Mm: Khng ca con lc lò xo v mng lc hc
u ki vt  v trí cân bng (hay trng thái ca lò xo)
+ Chuyng ca vt khi kéo vt ra khi v trí cân bng.
+ Các lc tác dng lên v ln ca chúng
* Nhng hn ch khi s dng thí nghim truyn thng
+ Hc sinh ch có th c chuyng ca con lt
 c s i v  ln ca các lc tác dng, s
i ca vn tc, gia tc trong quá tng ca con lc
+ R có th dng con lc ti thm b kho sát con lc v mt
ng lc hc
 c các giá tr ci vic phi thay lò
xo, và vt nng, s rt mt thi gian, và hr nhn ra s thay
i v t ng ca con lc
m ca thí nghim flash
+ Tr s di vi giáo viên và hc sinh
+ Giúp hc sinh có th c mt cách d dàng nht v chuyng

ca con lc lò xo, s i v  ln ca các lc tác dng lên vt
ng ca con lc
+ Có th tm dng con lc ti mt ví trí b quan sát hoc kho sát con lc
v mng lc hc
+ Có th i trc tip các giá tr  cng ca lò xo), m (khi ng ca
v thc s ph thuc cng vào giá tr ca k, m
+ Có th kéo vt ra khi v trí cân bng m  dao
ng khác nhau
+ Sau khi hoàn thành, giáo viên có th n vi tng hc sinh,
 hc sinh có th t làm thí nghim, t hc và t thc hành, hoc có th b sung
câu hi vào thí nghi giao cho hc sinh git bài tp v nhà
12

+ File flash có th m mt cách d dàng bng các trình duyt web (Chrome,
 kt hp d dàng vi Violet ho
to thành mt bài ging hoàn chnh
c thit k thí nghim
Bước 1: To các Layer cha MovieClip

tên ca MC vit lin không cách, không
du trong mc <Instance Name>), to
các thành phn cn có khác trên Stage
To mt MC trng (nhn Ctrl + F8) sau
 kéo ra Stage
Kt qu (hình 8)
Bước 2. Thc hin vit các mã lnh
- Bên trong MC tr   
MC (du chm trn F9):
_parent.dung.onPress = function(){ ha = false;}//khi bm nút tm dng
_parent.chay.onPress = function(){ ha = true;} //khi bm nút play

// khi bm và gi v kéo v
_parent.vat.onPress = function(){
_parent.vat.startDrag(true, x0 - A, y0, x0 + A, y0); ha = false; }
// khi th vt ra
_parent.vat.onRelease = function(){ _parent.vat.stopDrag();
biendo = _parent.vat._x - x0; nh
ha = true; _parent.bienam._visible = true; _parent.bienduong._visible = true;}
_parent.vat.onReleaseOutside = function(){
_parent.vat.stopDrag(); biendo = _parent.vat._x - x0;
ha = true; _parent.bienam._visible = true; _parent.bienduong._visible = true;}
- Bên ngoài MC trng, nhn F9 ri vit các câu lnh sau:
//ti thu
onClipEvent (load){ t = 0; // thu
(hình 8)
13

x0 = _parent.vat._x; y0 = _parent.vat._y;// t u ca vt
 u ca lò xo
ym = _parent.khoiluong._y; // t u ci m, k
hvat = _parent.vat._height; //  u ca vt
 ru ca vt
 ln nht
//khi bu chy Frame
onClipEvent (enterFrame){
i kh cnh và khi kéo vt ra
khi vtcb thì thuc tính c
m = 0.4*(ym + 60 - _root.khoiluong._y)/10;// khng ca vt
k = 80*(ym + 60 -  cng ca lò xo
w = Math.sqrt(k/m); // tn s góc
_parent.vat._height = 30 + 7*m;_parent.vat._width =30 + 7*m;//kích c ca vt

 dài ca véc-ng lc
 dài ca véc-n lc
e = _parent.vat._x; // t x ca vt khi b kéo ra khi v trí cân bng
_parent.que._x = e; _parent.lucf._x = e; //t x ca que ni, véc-c F
b = _parent.lucf._xscale = k*(x0 - e)/400;// chiu dài ca véc-c F
_parent.chuf._x = e + b; // t x ca ch  chú thích lc F
_parent.giatoc._x = e; // t x ca véc-gia tc
 dài ca véc-c
_parent.chua._x = e + c; // t x ca ch  chú thích gia tc
_parent.loxo._width = e -  dãn ca lò xo khi kéo vt ra khi vtcb
_parent.trongluc._x = e;_parent.phanluc._x = e;//t x ca trng lc, phn lc
_parent.bienam._x = x0 - biendo; _parent.bienduong._x = x0 + biendo; // v trí
 x
_parent.chua._visible = false; _parent.chuf._visible = false; //n ch a, ch F
f = Math.abs(_parent.lucf._xscale); //giá tr tuyi c dài lc F
j = _parent.lucf._visible; // thuc tính n/hin ca lc F
14

if ( f > 1 ){ if ( j == true){ _parent.chua._visible = true; // hin th ch a
_parent.chuf._visible = true;}}// hin th ch F
if(ha == true){ t = t + 0.01; // thi gian bi h s 0.01
//tip theo là thuc tính cng theo thi gian
e = _parent.vat._x = x0 + biendo*Math.cos(w*t); // t ca vt
_parent.que._x = e; //t x ca que ni vt vi lò xo
_parent.vantoc._x = e; // t x ca véc-n tc
a = _parent.vantoc._xscale = 0 -  dài ca
véc-n tc
_parent.chuv._x = e + a; // t x ca ch  chú thích vn tc
_parent.chuv._visible = false;// n cha v
_parent.vantoc._visible = false; // n véc-n tc

if (f > 1){ if ( j == true){ _parent.vantoc._visible = true;//hin véc-n tc
_parent.chuv._visible = true;}}// hin th ch v
_parent.lucf._x = e; _parent.chuf._x = e + b;//t x ca véc-c F và ch F
_parent.giatoc._x=e;_parent.chua._x=e + c;//t x ca véc-c và ch a
_parent.lido._x = e; //t x c
_parent.loxo._width = e - x0 + l0;  dài ca lò xo
_parent.trongluc._x = e; _parent.phanluc._x = e;
_parent.lido._visible = true; //
d = _parent.lido._xscale = e -  dài c
if (d > 0){ _parent.xduong._visible = true; _parent.xam._visible = false;}
//hin x > 0 và n x < 0
if (d < 0){ _parent.xduong._visible = false; _parent.xam._visible = true;}}}
//n x > 0 và hin x < 0
- Tu tiên nhn F9 và chèn mã lnh sau:
g = false; h = true; trongluc._visible = g; phanluc._visible = g; lucf._visible = g;
giatoc._visible = g; vantoc._visible = g; chuv._visible = g; xam._visible = g;
xduong._visible = g; bienam._visible = g; bienduong._visible = g; lido._visible =
g; cauhoi._visible = g; // các thuc tính n (false) và hin (true) ca i ng
15

- Chn nút n/hin các lc tác dng và gia
tc, nhn F9 và chèn mã lnh sau:
on (press){
trongluc._visible = !trongluc._visible;
lucf._visible = !lucf._visible;
phanluc._visible = !phanluc._visible;
giatoc._visible = !giatoc._visible;}
Nh xem kt qu (hình 9)
2. Thí nghim v con l
* Mm: Kho sát con lc

 mng lc hc
+ Chuyng ca con l
+ Các lc tác dng lên con lng
* Nhng hn ch khi s dng thí nghim truyn thng
+ Hc sinh ch có th c chuyng ca con lt khó
 c s i v  ln ca các lc tác dng, s thay
i ca vn tc, gia tng ca con lc
+ R có th dng con lc li ti mt thm b kho sát
m ca thí nghim flash
+ Trc quan và d s di vi giáo viên và hc sinh
+ Giúp hc sinh có th c mt cách d dàng nht v chuyng
ca con l i v  ln ca các lc tác dng lên qu
nng ca con lc
+ Có th tm dng con lc ti mt ví trí b quan sát hoc kho sát con lc
v mng lc hc
+ Sau khi hoàn thành, giáo viên có th n vi tng hc sinh,
 hc sinh có th t làm thí nghim, t hc và t thc hành, hoc có th b sung
câu hi vào thí nghi giao cho hc sinh git bài tp v nhà
(hình 9)
16

+ File flash có th m mt cách d dàng bng các trình duyt web (Chrome,
th kt hp d dàng vi Violet ho
to thành mt bài ging hoàn chnh
c thit k thí nghim
Bước 1: To các MovieClip  t
       
ca MC vit lin không cách, không
du trong mc < Instance Name >,
có th to các MC trên các Layer

khác nhau), to các thành phn cn
có khác trên Stage
To mt MC trng (nhn Ctrl + F8)
 kéo ra Stage
Kt qu (hình 10)
Bước 3: Thc hin vit các mã lnh
- Bên trong MC trng:
// khi bm nút play
_parent.chay.onPress = function(){ ha = true; batdaulai = false;
//v qu o
_parent.createEmptyMovieClip("quydao", 1);
with (_parent.quydao){lineStyle(1, 19777215, 100);
moveTo(_parent.trongluc._x, _parent.trongluc._y);}}
_parent.dung.onPress = function(){ha = false;}//khi bm nút tm dng
_parent.batdaulai.onPress = function(){batdaulai=true;ha = true;}//khi bm nút stop
- Bên ngoài MC trng:
//ti thu
onClipEvent(load){
g = 9.8;//gia tc trng
A = -30; góc, quay theo chiu ngc ching h
api = -A*Math.PI/180; //chuyn sang radian
(hình 10)
17

l = _parent.soiday._height;  dài ca s dây
_parent.soiday._rotation = A;// s dây quay theo góc A
x0 = _parent.vat._x; y0 = _parent.vat._y;// t u ca vt nng
// t ca vt sau khi s dây quay mt góc A
xvat = _parent.vat._x = x0 + l*Math.sin(api);
yvat = _parent.vat._y = y0 - l + l*Math.cos(api);

//t ca các véc-ng lc, phn lc
_parent.trongluc._x = xvat; _parent.trongluc._y = yvat;
lp = _parent.trongluc._yscale; dài ca véc-ng lc
_parent.lucpn._x = xvat; _parent.lucpn._y = yvat;//t ca véc-
phn ca trng lc
_parent.lucpn._rotation = A; //véc-n pn quay vi góc A
lpn = _parent.lucpn._yscale = lp*Math.cos(api);  dài ca véc-
_parent.chupn._x = xvat + 1.3*lpn*Math.sin(api);//t x ca ch pn
_parent.chupn._y = yvat + lpn*Math.cos(api) + 30;//t y ca ch pn
 n trng lc tính ca thành
phn trng lp tuyn pt, l
_parent.lucpt._x = xvat; _parent.lucpt._y = yvat; _parent.lucpt._rotation = A;
lpt = _parent.lucpt._xscale = lp*Math.sin(api);
_parent.chupt._x = xvat - 1.6*lpt*Math.cos(api);
_parent.chupt._y = yvat + lpt*Math.sin(api) + 15;
_parent.luct._x = xvat; _parent.luct._y = yvat; _parent.luct._rotation = A;
_parent.luct._yscale = lpn; _parent.chut._x = xvat - 0.5*lpn*Math.sin(api);
_parent.chut._y = yvat - lpn*Math.cos(api)/1.1;
ng k t ni các thành phn trng lc và trng l luôn to
thành mt hình bình hành
_parent.noipn._x = xvat; _parent.noipn._y = yvat + lp +20;
_parent.noipn._rotation = A; _parent.noipn._xscale = lpt*1.7;
_parent.noipt._x = xvat; _parent.noipt._y = yvat + lp + 20;
_parent.noipt._rotation = A; _parent.noipt._yscale = lpn*1.85 ;
18

t= 0; }// thu bng không
//bu chy Frame
onClipEvent (enterFrame){
if (ha ==true){ t = t + 0.01;//thn vi h s 0.01

i = Math.cos(2*Math.PI*t);//bin i vi các giá tr t -n 1
a = A*i;  góc i t -n a theo thi gian
api = -A*i*Math.PI/180; góc theo radian i t -n api
//ting theo thi gian, thì các thuc tính ca
ng s nh da vào các mi liên h gia chúng
_parent.soiday._rotation = a;//si dây quay v i a
xvat=_parent.vat._x =x0 + l*Math.sin(api);//t x ca vt theo thi gian
yvat = _parent.vat._y = y0 - l + l*Math.cos(api);//t y ca vt theo thi gian
_parent.trongluc._x=xvat;_parent.trongluc._y=yvat;//t ca véc-ng
lc theo thng
lp = _parent.trongluc._yscale; dài ca véc-ng lc theo thi gian
_parent.lucpn._x = xvat; _parent.lucpn._y = yvat; //t ca véc-
phn trng lc pn theo thi gian
_parent.lucpn._rotation = a;// thành phn pn quay v i a
lpn =_parent.lucpn._yscale =lp*Math.cos(api); dài ca véc-n
pn theo thi gian
//t ca ch pn theo thi gian
_parent.chupn._x = xvat + 1.3*lpn*Math.sin(api);
_parent.chupn._y = yvat + lpn*Math.cos(api) + 30;
 là t ca thành phn pt theo thi gian
_parent.lucpt._x = xvat; _parent.lucpt._y = yvat;
_parent.lucpt._rotation = a;// thành phn pt quay v i a
lpt = _parent.lucpt._xscale = lp*Math.sin(api);   dài ca véc- thành
phn trng lc pt theo thi gian
//t ca ch pt theo thi gian
_parent.chupt._x = xvat - 1.6*lpt*Math.cos(api);
19

_parent.chupt._y = yvat + lpt*Math.sin(api) + 15;
//t ca véc- theo thi gian

_parent.luct._x = xvat; _parent.luct._y = yvat;
_parent.luct._rotation = a;//véc-c T quay v i a
_parent.luct._yscale = lpn;  dài ca véc- theo thi gian
//t ca ch t theo thi gian
_parent.chut._x = xvat - 0.5*lpn*Math.sin(api);
_parent.chut._y = yvat - lpn*Math.cos(api)/1.1;
 ta có các thuc tính ca các thành phn ni các thành phn trng
lc v luôn to ra mt hình bình hành
_parent.noipn._x = xvat;_parent.noipn._y= yvat + lp +20; //t theo thi gian
_parent.noipn._rotation = a;//quay v i a
_parent.noipn._xscale = lpt*1.7; dài theo thi gian
_parent.noipt._x = xvat; _parent.noipt._y = yvat + lp + 20;
_parent.noipt._rotation = a; _parent.noipt._yscale = lpn*1.85 ;
_parent.goc._x = x0 - 25 + xvat/10;//t x ca ch 
with (_parent.quydao){lineTo(_parent.trongluc._x, _parent.trongluc._y);}
//qu o ca vnh theo t ca véc-ng lc, hoc có th
chn là t ca vt
if (batdaulai == true){t = 0; _parent.quydao.clear();}}}
- Tu tiên:
//các thuc tính n hin cng khi bu chy t u tiên
trongluc._visible = false; luct._visible = false; lucpn._visible = false;
lucpt._visible = false; noipn._visible = false; noipt._visible = false; chut._visible
= false; chupt._visible = false; chupn._visible = false;
- Trong nút hin th lng lc:
on(press){trongluc._visible = true; luct._visible = true; chut._visible = true;}
- Trong nút hin th các thành phn ca trng lc:
on(press){lucpt._visible = true; lucpn._visible = true; noipn._visible = true;
noipt._visible = true; chupt._visible = true; chupn._visible = true;}
20


- Trong nút n:
on(press){
trongluc._visible = false; luct._visible = false;
lucpn._visible = false; lucpt._visible = false;
noipn._visible = false; noipt._visible = false;
chupt._visible = false; chupn._visible = false;
chut._visible = false}
Nh xem kt qu (hình 11):










(



)
* Mm: Kho sát con l mng lc hc
+ Chuyng ca con l
+ Các lc tác dng lên con lng
* Nhng hn ch khi s dng thí nghim truyn thng
+ Hc sinh ch có th c chuyng ca con l
r c s i v  ln ca các lc tác dng, s
i ca vn tc, gia tng ca con lc

+ R có th dng con lc li ti mt thm b kho sát
m ca thí nghim flash
+ Trc quan và d s di vi giáo viên và hc sinh
+ Giúp hc sinh có th c mt cách d dàng nht v chuyng
ca con l i v  ln ca các lc tác dng lên
qu nng ca con lc
+ Có th tm dng con lc ti mt ví trí b quan sát hoc kho sát con lc
v mng lc hc
+ Sau khi hoàn thành, giáo viên có th n vi tng hc
 hc sinh có th t làm thí nghim, t hc và t thc hành, hoc có
th b sung câu hi vào thí nghi giao cho hc sinh git bài
tp v nhà
+ File flash có th kt hp d dàng vi Violet ho to thành mt
bài ging hoàn chnh
(hình 11)
21

Bước 1: Tt tên
a MC
vit lin không cách, không du trong
mc < Instance Name >, có th to các
MC trên các Layer khác nhau), to các
thành phn cn có khác trên Stage
To hai MC trng (nhn Ctrl + F8) sau
 t tên
trong mc < Instance Name > lt
là diem1 và diem2
n to ra 3 s dài l0
       t chng lên nhau có tên là unpausebutton1 và
t tên là nutsop, nút

các thành phn ca trng lt tên là nut2
Kt qu (hình 12)
Bước 2: Thc hin vit các mã lnh
- Ti u tiên
t1 = 0; t2 = 0;//hai mc thu
x0 = vat._x; y0 = vat._y;//t u ca qu nng
xt = chut._x; yt = chut._y;//t u ca ch T (l
 dài ca l1, l2
lp = tro dài ca véc-ng lc
//ng trng lc, l T; thành phn lc Pt, Pn; ch Pt,
ng k ni gia trng lc và các thành phn Pt, Pn; nút các thành phn
ca trng lc; các ch n thông tin ghi nh, câu hi, nút play th hai
trongluc._visible = false; luct._visible = false; chut._visible = false;
lucpt._visible = false; lucpn._visible = false; chupn._visible = false;
chupt._visible = false; noipt._visible = false; noipn._visible = false;
nut2._visible = false; gocb._visible = false; goca._visible = false;
ghinho._visible = false; cauhoi._visible = false; unpausebutton2._visible = false;
(hình 12)
22

g = 9,8;// gia tc trng
w1 = 30*Math.sqrt(g/dodail1);//tn s 
w2 = 30*Math.sqrt(g/dodail2);//tn s 
ng batdau()
function batdau (){ t1 = 0; t2 = 0;}//mc thu
ng batdaulai ()
function batdaulai() { t1 = 0; t2 = 0;
vat._x = x0; vat._y = y0;//vt tr v v u
//thc hing
dao_dong1(); dao_dong2 (); tamdung ();

//ng sau
lucpt._visible = false; lucpn._visible = false; chupn._visible = false;
chupt._visible = false; noipt._visible = false; noipn._visible = false;
nut2._visible = false; gocb._visible = false; goca._visible = false;
chut._x = xt; chut._y = yt;//ch T tr v v u
goca._x = x0; gocb._x = x0;}// các ch  x = x0
ng tamdung ()
function tamdung() { timing1 = false; timing2 = false;} //hai bin timing bng false
ng chaytiep1 ()
function chaytiep1() { timing1 = true;}//bin timing1 bng true
ng chaytiep2 ()
function chaytiep2() { timing2 = true;}//bin timing2 bng true
ng dao_dong1 () bao gm
function dao_dong1() { unpausebutton1._visible = true;//hin nút play th nht
unpausebutton2._visible = false;//n nút play th hai
l1._visible = true;//hin si dây 1 (s 
l2._visible = false; l0._visible = false;//n hai si dây l1, l0
i1 = Math.sin(w1*t1);//bin i1
 góc ca con l
 góc theo radian
23

//nu i1 > 0 thì
if (i1 > 0){ //bu theo thi gian
ng sau quay theo chiu c ching h
l1._rotation = -a*i1; luct._rotation = -a*i1; lucpn._rotation = -a*i1;
lucpt._rotation = -a*i1; noipn._rotation = -a*i1; noipt._rotation = -a*i1;
//t ca qu nng theo thi gian khi con l
vat._x = x0 + dodail1*Math.sin(api);
vat._y = y0 - dodail1 + dodail1*Math.cos(api);

 dài ca thành phn lc Pn
//t theo thi gian ca ch Pn
chupn._x = xvat + 1.3*lpn*Math.sin(api);
chupn._y = yvat + lpn*Math.cos(api) + 30;
 dài ca li gian
 dài ca thành phn lc Pt
//t theo thi gian ca ch Pt, ch T
chupt._x = xvat - 1.6*lpt*Math.cos(api);
chupt._y = yvat + lpt*Math.sin(api) + 15;
chut._x = xvat - 0.5*lpn*Math.sin(api);
chut._y = yvat - lpn*Math.cos(api)/1.1;
 dài cn ni trng lc vi thành phn lc Pn
 dài cn ni trng lc vi thành phn lc Pt
goca._x = x0 + dodail1/6*Math.sin(api);}//t x ca ch 
//hoc nu i1 không l
else { l1._rotation = 0;//si dây l1 tr v v u
batdau(); //thc hing batdau ()
timing1=false;timing2=true;}}//bin tic gán bng false, true
ng dao_dong2 () bao gm
function dao_dong2() { unpausebutton2._visible = true;//hin nút play th hai
unpausebutton1._visible = false;//n nút play th nht
l1._visible = false;//n si dây l1

×