1. Trang chủ
  2. » Luận Văn - Báo Cáo

ứ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

56 828 7

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 56
Dung lượng 1,97 MB

Nội dung

Người học có thể tương tác với các đối tượ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.. Và với sự hỗ trợ để mở file flash của hầu

Trang 1

MỤC LỤC

PHẦN I MỞ ĐẦU 1

1 Lý do chọn đề tài 1

2 Mục đích nghiên cứu 2

3 Đối tượng nghiên cứu 2

4 Nhiệm vụ nghiên cứu 2

5 Phương pháp nghiên cứ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

Chương I Tìm hiểu phần mềm Adobe Flash CS5 3

1 Khởi động phần mềm 3

2 Giao diện chương trình và các panel 4

3 ActionScript trong Flash 5

4 Tạo chuyển động bằng cách viết mã lệnh 7

Chương II Ứ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ý 12 11

1 Thí nghiệm về con lắc lò xo 11

2 Thí nghiệm về con lắc đơn 15

3 Con lắc dao động với hai nửa chu kì khác nhau (con lắc vướng đinh) 20

4 Con lắc vật lý 27

5 Dao động tắt dần 29

6 Thí nghiệm minh họa mối liên hệ giữa dao động điều hòa và chuyển động tròn đề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ỏng máy phát điện xoay chiều một pha, ba pha 43

11 Thí nghiệm về lăng kính 48

Trang 2

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

Trang 3

mà nguyên nhân là học sinh không thể hình dung được hiện tượng

Hiện nay có rất nhiều phần mềm có thể làm được điều đó song phần lớn các phần mềm mô phỏng hiện nay đều xuất phát từ nước ngoài nên nhiều phần không sát với chương trình của chúng ta và không phải hiện tượng vật lý nào cũng có, hơn nữa để thể hiện được đúng ý đồ của người dạy lại càng khó Để khắc phục những nhược điểm đó tôi đã tìm hiể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ện tượng vật lý

Adobe Flash là phần mềm vẽ hình cho phép tạo hình ảnh động, có các hiệu ứng chuyển động và biến đổi, lập trình để tạo ra các hoạt động mô phỏng và tương tác một cách sinh độ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ỏng Người học có thể tương tác với các đối tượ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ặc Powerpoint để 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 nay (Chrome, Firefox, Internet Explore…) họ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 người thiết kế thiết kế thí nghiệm ảo bằng việc tương tác trực tiếp trên các đối tượng trong file flash mô phỏng Với phần mềm Adobe Flash, chúng ta có thể thiết kế các quá trình, cơ chế, thí nghiệm hoặc tất cả những yếu tố có tính động để 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ản trước và có thêm nhiều cải tiến Luận văn của tôi sử dụng phiên bản CS5 là phiên bản xuất xưởng năm 2010 củ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” làm đối tượng nghiên cứu Tôi mong muốn

Trang 4

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ện tượ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ận văn sẽ là một tài liệu hữu ích cho các sinh viên ngành

Sư phạm vật lý cũng như các giáo viên giảng dạy ở trường THPT

4 Nhiệm vụ nghiên cứu

- Tìm hiểu cách sử dụng phần mềm Adobe Flash CS5

- Ứng dụng để thiết kế một số thí nghiệm mô phỏng các hiện tượng vật lý trong chương trình vật lý lớp 12

5 Phương pháp nghiên cứu

- 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

6 Cấu trúc khoá luận

- Phần I Mở Đầu

- Phần II Nội Dung

+ Chương I Giới thiệu phần mềm Adobe Flash CS5

+ Chương II Ứng dụng Adobe Flash CS5 thiết kế một số thí nghiệm mô phỏng các hiện tượng vật lý trong chương trình vật lý 12

Trang 5

PHẦN II NỘI DUNG Chương I Tìm hiểu phần mềm Adobe Flash CS5

Hiện nay Adobe Flash đã trải qua rất nhiều phiên bản khác nhau Với phiên bản CS5, xuất xưởng năm 2010 Adobe đã bổ sung vào những tính năng mới giúp người dùng thiết kế và lập trịnh đơn giản hơn Với mục dích tận dụng được những nâng cấp của phiên sau tác giả của luận văn chọn phiên bản CS5 của Adobe Flash với tên đầy đủ là Adobe Flash Professional CS5 trên nền giao diện Window 8 để làm đối tượng nghiên cứu

Trong giao diện Star menu di

chuyển và chọn đến biểu tượng

của phần mềm Adobe Flash

Professional CS5 (hình 1) sau đó

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 sau đó chọn

chức năng search trên window

8, viết vào hộp thoại tìm kiếm

Trang 6

Sau khi cho ̣n xong, chương

trình màn hình Splash - màn hình

chào đón của Adobe Flash

Professional CS5 sẽ hiện ra (hình 3)

Sau khi quá trình khởi động

hoàn tất ta sẽ thấy có giao diện sau

đây (hình 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ển đổ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ục đích củ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

2 Giao diện chương trình và các panel

 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ễn khi phim đã được

xuất bản

(hình 4) (hình 3)

(hình 5)

Trang 7

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ức và điều kiển về vấn đề thời gian cho phim

 Layers (các lớp)

Giúp tổ chức trật tự trên dưới của các đối tượng hình vẽ

Library (thư viện)

Là nơi lưu trữ các tài nguyên của đoạn phim

 Properties (bảng thuộc tính)

Cho ta biết thuộc tính của đối tượng (màu nền, tốc độ hình ảnh, kích cỡ sân…), về hình ảnh (màu nét, màu nền, độ rộng nét ), các thông số trong các chuyển động (tốc độ nhanh dần hay chậm dần, quay theo chiều nào…)

3 ActionScript trong Flash

Mã lệnh ActionScript (code AS) là một dạng ngôn ngữ lập trình được xây dựng trong Flash ta cũng có thể hiểu AS như các câu lệnh đơn giản bằng tiếng Anh

* Thứ nhất, ta cần biết là AS sẽ được viết ở đâu? Có 3 nơi 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ới có ý nghĩa trong tương tác, nút chỉ hoạt

động khi có chuột hoặc bàn phím tác động lên nó mà thôi

- Trên đoạn phim (MovieClip), hoạt động của MC sẽ rất đa dạng nếu được

kèm theo AS, có thể xem đây là đối tượng chính mà ta thường xuyên viết AS

* Thứ hai, ta cần biết là viết AS như thế nào?

Trang 8

Để viết AS thì rất đơn giản, ta chọn

nơi mà mình dự định sẽ viết AS (có thể

là một Frame trên TimeLine, một nút

hay một MC) Tiếp đó, mở 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ện) {Hành động};

Một câu lệnh thường kết thúc bằng dấu (;) Nếu một câu nào đó nằm sau dấu

// thì nó được xem như lời chú thích cho phần code AS mà tác giả vừa viết nhằm giúp cho người đọc dễ hiểu, nó không được máy tính xem như mã lệ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 động nào đó tạ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ố code thường dùng hành động trên TimeLine như:

gotoAndPlay (n); // khi tới frame này thì sẽ nhảy đến tự động chạy từ frame thứ n

gotoAndStop (m,n); // nhảy đến và dừng tại frame thứ n của phân cảnh thứ m // đây chỉ là 2 cách nhảy frame, mỗi câu lệnh đều có thể dùng 1 trong 2 cách nhảy như trên

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ại frame trước đó

nextScene (); // tiến tới phân cảnh tiếp theo

prevScene (); // lùi lại phân cảnh trước đó

(hình 6)

Trang 9

stopAllSounds (); // dừng chơi mọi âm thanh tại frame này

- Đối với AS trên nút ta thường có câu lệnh dạng: on (sự kiện) { hành động };

tức là sau sự kiện nào đó thì hành động trong {} sẽ được thực hiện Một số code dùng trên nút là:

on (press) {hành động giống trên TimeLine}; // press là sự kiện nhấn chuột lên nút

on (release) {hành động giống trên TimeLine}; // release là sự kiện nhấn chuột lên nút và sau khi thả chuột thì hành động sẽ được thực hiện

- Đối với AS trên MC ta thường có câu lệnh dạng: onClipEvent (sự kiện) {hành động};

Một số sự kiện dùng trên MC là: load (khi MC chạy), enterFrame (khi đoạn phim Flash bắt đầu chạy), mouseDown (nhấn chuột lên MC), mouseMove (di chuyển chuột), mouseUp (để chuột trên MC)…

Một số hành động trên MC như: starDrag (bắt đầu có thể nhấn và kéo MC), stopDrag (dừng nhấn và kéo MC), this._x (cho biết tọa độ x của MC), this._y (cho biết tọa độ y của MC), this._rotation = r (hành động quay MC một góc r nào đó), this._rotation += V (quay MC theo một tốc độ V nào đó), this._alpha =

a (thể hiện độ mờ của MC theo tỉ lệ a% với 0< a <100), this._visible = v (thể hiện độ trong suốt của MC theo tì lệ v nào đó, với 0<v<1) “this” trong các câu 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ọa độ x của MC xe đạp)

Kết hợp sự kiện và hành động vào cú pháp ở trên ta sẽ có những đoạn code trên MC như ý

Ngoài ra ta cũng có thể điều khiển MC hay nút bằng cách viết mã lệnh trên TimeLine

- Một số lệnh khác như: lệnh If (điều kiện ràng buộc) {hành động}, lệnh

_root._xmouse hay _root._ymouse để lấy tọa độ chuột, một số phép toán …

4 Tạo chuyển động bằng cách viết mã lệnh

Ta sẽ chèn mã lệnh ActionScript vào MovieClip

Vậy đầu tiên ta cần tạo được các MovieClip

Trang 10

Bước 1: chọn đối tượ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

tâm MC (Registration), sau đó

chọn OK Đặt tên cho MovieClip

ở phần < Instance Name > trong Properties của MC

Tạo một MovieClip trắng (không có đối tượng): nhấn Ctrl + F8

4.1 Đối với chuyển động tròn

Nhập 1 trong 2 đoạn code sau vào MC

onClipEvent (enterFrame) {this._rotation += 10;} // khi chạy frame thì MC

sẽ chuyển động với tốc độ 10 theo chiều (+) (cùng chiều kim đồng hồ)

onClipEvent (enterFrame) {this._rotation -= 10;} // khi chạy frame thì MC sẽ

CĐ với tốc độ 10 theo chiều (-) (ngược chiều kim đồng hồ)

Chạy thử (Ctrl+Enter) để xem kết quả

Lưu ý: tâm của chuyển động này chính là tâm vùng thiết kế riêng của MC, ta

có thể tạo chuyển độ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ủa đối tượng trong MC tới tâm này

4.2 Đối với chuyển động thẳng đề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ẽ CĐ với tốc độ 10 theo chiều (+) (trái qua phải)

onClipEvent (enterFrame) {this._x -=10;} //khi chạy frame thì MC sẽ CĐ với tốc độ 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ẽ CĐ với tốc độ 10 theo chiều (+) (trên xuống)

onClipEvent (enterFrame) {this._y -= 10;} // khi chạy frame thì MC sẽ CĐ với tốc độ 10 theo chiều (-) (dưới lên)

(hình 7)

Trang 11

- 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ển động theo phương 450 hướng lên, tức là y = f(x) = x, khi đó ta có đoạn code:

onClipEvent (enterFrame) { this._x += 10 ; this._y = this._x ;}

//khi chạy frame thì MC sẽ CĐ với tốc độ 10 theo chiều trái qua phải và hướng lên góc 450

4.3 Đối với chuyển động thẳng chậm dần đề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 (enterFrame) { this._x += (400 - this._x)/speed;}

// khi chạy frame thì MC bắt đầu thay đổi vị trí x bằng cách cộng thêm hiệu của 550 (đây chính là vị trí cuối ta chọn, (550,50)) và vị trí cũ rồi chia cho speed, phần cộng thêm giảm dần khi tọa độ cũ tăng nên CĐ là chậ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ắt đầu thay đổi vị trí y bằng cách cộng thêm hiệu của 400 (đây chính là vị trí cuối ta chọn, (50,400)) và vị trí cũ rồi chia cho speed, phần cộng thêm giảm dần khi tọa độ cũ tăng nên CĐ là chậ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ị trí đầu của x ; this._y = vị trí đầu của y; speed = tốc độ ;}

Trang 12

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ển động thẳng nhanh dần đều

Ta làm tương tự nhưng trên nguyên tắc là cộng thêm một lượng tăng dần thì

sẽ có chuyển động nhanh dần

4.5 Đối với các chuyển động bất kỳ khác

Ta chỉ cần nắm được nội dung liên hệ giữa x, y rồi cho chúng biểu diễn qua lại lẫn nhau là được

VD: chuyển động ném ngang có quỹ đạo là x = v.t, y = 1/2.g.t2 nên sẽ có đoạn code sau:

Trang 13

Chương II Ứ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ý 12

1 Thí nghiệm về con lắc lò xo

* Mục đích thí nghiệm: Khảo sát dao động của con lắc lò xo về mặt động lực học + Điều kiện để vật ở vị trí cân bằng (hay trạng thái của lò xo)

+ Chuyển độ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ật, phương chiều độ 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ể quan sát được chuyển động của con lắc lò xo, nhưng rất khó để hình dung được sự thay đổi về hướng, độ lớn của các lực tác dụng, sự thay đổi của vận tốc, gia tốc trong quá trình dao động của con lắc

+ Rất khó để có thể dừng con lắc tại thời điểm bất kì để khảo sát con lắc về mặt động lực học

+ Để thay đổi được các giá trị của k và m, thì đồng nghĩa với việc phải thay lò

xo, và vật nặng, sẽ rất mất thời gian, và học sinh cũng rất khó để nhận ra sự thay đổi về tốc độ dao động của con lắc

* Ưu điểm của thí nghiệm flash

+ Trực quan và đễ sử dụng đối với giáo viên và học sinh

+ Giúp học sinh có thể hình dung được một cách dễ dàng nhất về chuyển động của con lắc lò xo, sự thay đổi về hướng và độ lớn của các lực tác dụng lên vật trong quá trình dao động của con lắc

+ Có thể tạm dừng con lắc tại một ví trí bất kì để quan sát hoặc khảo sát con lắc

+ Sau khi hoàn thành, giáo viên có thể đưa thí nghiệm này đế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ệm để giao cho học sinh giống như một bài tập về nhà

Trang 14

+ File flash có thể mở một cách dễ dàng bằng các trình duyệt web (Chrome, Filefox, IE…) hoặc cũng có thể kết hợp dễ dàng với Violet hoặc Powerpoint để tạo thành một bài giảng hoàn chỉnh

* Các bước thiết kế thí nghiệm

Bước 1: Tạo các Layer chứa MovieClip

(MC), đặt tên cho MC tương ứng (lưu ý

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

đó vào Libraly để 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ắng: Click đúp vào

MC (dấu chấm trắng trên Stage sau đó nhấ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ật để kéo vật đi

_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;// biên độ được xác đị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ời điểm ban đầu

onClipEvent (load){ t = 0; // thời gian ban đầu

(hình 8)

Trang 15

x0 = _parent.vat._x; y0 = _parent.vat._y;// tọa độ ban đầu của vật

l0 = _parent.loxo._width; // độ dài ban đầu của lò xo

ym = _parent.khoiluong._y; // tọa độ y ban đầu của thanh nút thay đổi m, k hvat = _parent.vat._height; // độ cao ban đầu của vật

wvat = _parent.vat._width; // độ rộng ban đầu của vật

m = 0.4*(ym + 60 - _root.khoiluong._y)/10;// khối lượng của vật

k = 80*(ym + 60 - _root.docung._y)/10; // độ 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 _parent.trongluc._height = 40*m; //độ dài của véc-tơ trọng lực

_parent.phanluc._height = 40*m; // độ dài của véc-tơ phản lực

e = _parent.vat._x; // tọa độ 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ọa độ x của que nối, véc-tơ lực F

b = _parent.lucf._xscale = k*(x0 - e)/400;// chiều dài của véc-tơ lực F

_parent.chuf._x = e + b; // tọa độ x của chữ F dùng để chú thích lực F

_parent.giatoc._x = e; // tọa độ x của véc-tơ gia tốc

c = _parent.giatoc._xscale = b/m; // độ dài của véc-tơ gia tốc

_parent.chua._x = e + c; // tọa độ x của chữ a dùng để chú thích gia tốc

_parent.loxo._width = e - x0 + l0; // độ dãn của lò xo khi kéo vật ra khỏi vtcb _parent.trongluc._x = e;_parent.phanluc._x = e;//tọa độ x của trọng lực, phản lực _parent.bienam._x = x0 - biendo; _parent.bienduong._x = x0 + biendo; // vị trí xác định đâu là biên âm, đâu là biên dương theo tọa độ x

_parent.chua._visible = false; _parent.chuf._visible = false; //ẩn chữ a, chữ F

f = Math.abs(_parent.lucf._xscale); //giá trị tuyệt đối của độ dài lực F

j = _parent.lucf._visible; // thuộc tính ẩn/hiện của lực F

Trang 16

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ắt đầu tăng với hệ số 0.01

//tiếp theo là thuộc tính của các đối tượng theo thời gian

e = _parent.vat._x = x0 + biendo*Math.cos(w*t); // tọa độ của vật

_parent.que._x = e; //tọa độ x của que nối vật với lò xo

_parent.vantoc._x = e; // tọa độ x của véc-tơ vận tốc

a = _parent.vantoc._xscale = 0 - biendo*Math.sin(w*t)*w/30;// độ dài của véc-tơ vận tốc

_parent.chuv._x = e + a; // tọa độ x của chữ v dùng để chú thích vận tốc _parent.chuv._visible = false;// ẩn chữa v

_parent.vantoc._visible = false; // ẩn véc-tơ vận tốc

if (f > 1){ if ( j == true){ _parent.vantoc._visible = true;//hiện véc-tơ vận tốc _parent.chuv._visible = true;}}// hiển thị chữ v

_parent.lucf._x = e; _parent.chuf._x = e + b;//tọa độ x của véc-tơ lực F và chữ F _parent.giatoc._x=e;_parent.chua._x=e + c;//tọa độ x của véc-tơ gia tốc và chữ a _parent.lido._x = e; //tọa độ x của mũi tên hai chiều đo khoảng cách li độ

_parent.loxo._width = e - x0 + l0; //độ dài của lò xo

_parent.trongluc._x = e; _parent.phanluc._x = e;

_parent.lido._visible = true; //ẩn mũi tên hai chiều đo khoảng cách li độ

d = _parent.lido._xscale = e - x0;//độ dài của li độ

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ại Frame đầ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 các đối tượng

Trang 17

Nhấn Ctrl + Enter để xem kết quả (hình 9)

2 Thí nghiệm về con lắc đơn

* Mục đích thí nghiệm: Khảo sát con lắc

đơn về mặt động lực học

+ Chuyển động của con lắc đơn

+ Các lực tác dụng lên con lắc trong khi dao động

* Những hạn chế khi sử dụng thí nghiệm truyền thống

+ Học sinh chỉ có thể quan sát được chuyển động của con lắc đơn, nhưng rất khó

để hình dung được sự thay đổi về hướng, độ lớn của các lực tác dụng, sự thay đổi của vận tốc, gia tốc trong quá trình dao động của con lắc

+ Rất khó để có thể dừng con lắc lại tại một thời điểm bất kì để khảo sát

* Ưu điểm của thí nghiệm flash

+ Trực quan và dễ sử dụng đối với giáo viên và học sinh

+ Giúp học sinh có thể hình dung được một cách dễ dàng nhất về chuyển động của con lắc đơn, sự thay đổi về hướng và độ lớn của các lực tác dụng lên quả nặng trong quá trình dao động của con lắc

+ Có thể tạm dừng con lắc tại một ví trí bất kì để quan sát hoặc khảo sát con lắc

về mặt động lực học

+ Sau khi hoàn thành, giáo viên có thể đưa thí nghiệm này đế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ệm để giao cho học sinh giống như một bài tập về nhà

(hình 9)

Trang 18

+ File flash có thể mở một cách dễ dàng bằng các trình duyệt web (Chrome, Filefox, IE…) hoặc cũng có thể kết hợp dễ dàng với Violet hoặc Powerpoint để tạo thành một bài giảng hoàn chỉnh

* Các bước thiết kế thí nghiệm

Bước 1: Tạo các MovieClip và đặt

tên cho MC tương ứng (lưu ý tên

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

_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ời điểm ban đầu

onClipEvent(load){

g = 9.8;//gia tốc trọng trường

A = -30;// biên độ góc, quay theo chiều ngược chiều kim đồng hồ

api = -A*Math.PI/180; //chuyển sang radian

(hình 10)

Trang 19

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ọa độ ban đầu của vật nặng

// tọa độ 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ọa độ của các véc-tơ trọ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-tơ trọng lực

_parent.lucpn._x = xvat; _parent.lucpn._y = yvat;//tọa độ của véc-tơ thành phần theo phương pháp tuyến của trọng lực

_parent.lucpn._rotation = A; //véc-tơ thành phần pn quay với góc A

lpn = _parent.lucpn._yscale = lp*Math.cos(api); //độ dài của véc-tơ pn

_parent.chupn._x = xvat + 1.3*lpn*Math.sin(api);//tọa độ x của chữ pn

_parent.chupn._y = yvat + lpn*Math.cos(api) + 30;//tọa độ y của chữ pn //tương tự như thành phần trọng lực pn, ta cũng có các thuộc tính của thành phần trọng lực theo phương tiếp tuyến pt, lực căng dây T

_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;

// các đường kẻ nét đứt nối các thành phần trọng lực và trọng lực để 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 ;

Trang 20

t= 0; }// thời gian ban đầu bằng không

//bắt đầu chạy Frame

onClipEvent (enterFrame){

if (ha ==true){ t = t + 0.01;//thời gian tăng dần với hệ số 0.01

i = Math.cos(2*Math.PI*t);//biến i với các giá trị từ -1 đến 1

a = A*i; //biên độ góc thay đổi từ -a đến a theo thời gian

api = -A*i*Math.PI/180;// biên độ góc theo radian thay đổi từ -api đến api //tiếp theo là trong quá trình dao động theo thời gian, thì các thuộc tính của các đối tượng sẽ được xác đị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 biên độ góc thay đổi a

xvat=_parent.vat._x =x0 + l*Math.sin(api);//tọa độ x của vật theo thời gian yvat = _parent.vat._y = y0 - l + l*Math.cos(api);//tọa độ y của vật theo thời gian _parent.trongluc._x=xvat;_parent.trongluc._y=yvat;//tọa độ của véc-tơ trọng lực theo thời gian trong quá trình dao động

lp = _parent.trongluc._yscale;// độ dài của véc-tơ trọng lực theo thời gian _parent.lucpn._x = xvat; _parent.lucpn._y = yvat; //tọa độ của véc-tơ thành phần trọng lực pn theo thời gian

_parent.lucpn._rotation = a;// thành phần pn quay với biên độ góc thay đổi a lpn =_parent.lucpn._yscale =lp*Math.cos(api);//độ dài của véc-tơ thành phần

pn theo thời gian

//tọa độ 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;

//tương tự là tọa độ 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 biên độ góc thay đổi a lpt = _parent.lucpt._xscale = lp*Math.sin(api); // độ dài của véc-tơ thành phần trọng lực pt theo thời gian

//tọa độ của chữ pt theo thời gian

_parent.chupt._x = xvat - 1.6*lpt*Math.cos(api);

Trang 21

_parent.chupt._y = yvat + lpt*Math.sin(api) + 15;

//tọa độ của véc-tơ lực căng dây T theo thời gian

_parent.luct._x = xvat; _parent.luct._y = yvat;

_parent.luct._rotation = a;//véc-tơ lực T quay với biên độ góc thay đổi a _parent.luct._yscale = lpn; //độ dài của véc-tơ lực căng T theo thời gian //tọa độ 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;

//tương tự 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ới nhau để luôn tạo ra một hình bình hành

_parent.noipn._x = xvat;_parent.noipn._y= yvat + lp +20; //tọa độ theo thời gian _parent.noipn._rotation = a;//quay với biên độ góc thay đổ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ọa độ x của chữ α

with (_parent.quydao){lineTo(_parent.trongluc._x, _parent.trongluc._y);} //quỹ đạo của vật được xác định theo tọa độ của véc-tơ trọng lực, hoặc có thể chọn là tọa độ của vật

if (batdaulai == true){t = 0; _parent.quydao.clear();}}}

- Tại Frame đầu tiên:

//các thuộc tính ẩn hiện của các đối tượng khi bắt đầu chạy từ Frame đầ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ực căng dây và trọ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;}

Trang 22

- 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ấn Ctrl + Enter để xem kết quả (hình 11):

3 Con lắc dao đô ̣ng với hai nửa chu kì khác nhau (con lắc vướng đinh)

* Mục đích thí nghiệm: Khảo sát con lắc vướng đinh về mặt động lực học

+ Chuyển động của con lắc vướng đinh

+ Các lực tác dụng lên con lắc trong khi dao động

* Những hạn chế khi sử dụng thí nghiệm truyền thống

+ Học sinh chỉ có thể quan sát được chuyển động của con lắc vướng đinh, nhưng rất khó để hình dung được sự thay đổi về hướng, độ lớn của các lực tác dụng, sự thay đổi của vận tốc, gia tốc trong quá trình dao động của con lắc

+ Rất khó để có thể dừng con lắc lại tại một thời điểm bất kì để khảo sát

* Ưu điểm của thí nghiệm flash

+ Trực quan và dễ sử dụng đối với giáo viên và học sinh

+ Giúp học sinh có thể hình dung được một cách dễ dàng nhất về chuyển động của con lắc vướng đinh, sự thay đổi về hướng và độ lớn của các lực tác dụng lên quả nặng trong quá trình dao động của con lắc

+ Có thể tạm dừng con lắc tại một ví trí bất kì để quan sát hoặc khảo sát con lắc

về mặt động lực học

+ Sau khi hoàn thành, giáo viên có thể đưa thí nghiệm này đế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ệm để giao cho học sinh giống như một bài tập về nhà

+ File flash có thể kết hợp dễ dàng với Violet hoặc Powerpoint để tạo thành một bài giảng hoàn chỉnh

(hình 11)

Trang 23

Bước 1: Tạo các MovieClip và đặt tên

cho MC tương ứng (lưu ý tên 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 hai MC trắng (nhấn Ctrl + F8) sau

đó vào Libraly để kéo ra Stage, đặt tên

trong mục < Instance Name > lần lượt

là diem1 và diem2

Lưu ý: cần tạo ra 3 sợi dây có độ dài l0

< l2 < l1, 2 nút play đặt chồng lên nhau có tên là unpausebutton1 và unpausebutton2, nút pause đặt tên là pausebutton, nút stop đặt tên là nutsop, nút các thành phần của trọng lực đặ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 Frame đầu tiên

t1 = 0; t2 = 0;//hai mốc thời gian ban đầu

x0 = vat._x; y0 = vat._y;//tọa độ ban đầu của quả nặng

xt = chut._x; yt = chut._y;//tọa độ ban đầu của chữ T (lực căng dây T)

dodail1 = l1._height; dodail2 = l2._height; //độ dài của l1, l2

lp = trongluc._yscale;//độ dài của véc-tơ trọng lực

//ẩn các đối tượng trọng lực, lực căng T, chữ T; thành phần lực Pt, Pn; chữ Pt, Pn; đườ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ữ α, β; phầ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)

Trang 24

g = 9,8;// gia tốc trọng trường

w1 = 30*Math.sqrt(g/dodail1);//tần số góc trước khi vướng đinh

w2 = 30*Math.sqrt(g/dodail2);//tần số góc sau khi vướng đinh

//khai báo đối tượng batdau()

function batdau (){ t1 = 0; t2 = 0;}//mốc thời gian ban đầu

//khai báo đối tượng batdaulai ()

function batdaulai() { t1 = 0; t2 = 0;

vat._x = x0; vat._y = y0;//vật trở về vị trí ban đầu

//thực hiện các đối tượng

dao_dong1(); dao_dong2 (); tamdung ();

//ẩn các đối tượ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ị trí ban đầu

goca._x = x0; gocb._x = x0;}// các chữ α, β có tọa độ x = x0

// khai báo đối tượng tamdung ()

function tamdung() { timing1 = false; timing2 = false;} //hai biến timing bằng false // khai báo đối tượng chaytiep1 ()

function chaytiep1() { timing1 = true;}//biến timing1 bằng true

//khai báo đối tượng chaytiep2 ()

function chaytiep2() { timing2 = true;}//biến timing2 bằng true

//khai báo đối tượ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ợi dây chưa bị vướng đinh)

l2._visible = false; l0._visible = false;//ẩn hai sợi dây l1, l0

i1 = Math.sin(w1*t1);//biến i1

a = 30;//biên độ góc của con lắc trước khi vướng đinh

api = a*i1*Math.PI/180;//biên độ góc theo radian

Trang 25

//nếu i1 > 0 thì

if (i1 > 0){ //bắt đầu theo thời gian

//các đối tượng sau quay theo chiều ngược chiều kim đồ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ọa độ của quả nặng theo thời gian khi con lắc chưa vướng đinh

vat._x = x0 + dodail1*Math.sin(api);

vat._y = y0 - dodail1 + dodail1*Math.cos(api);

lpn = lucpn._yscale = lp*Math.cos(api);//độ dài của thành phần lực Pn //tọa độ 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;

luct._yscale = lpn;//độ dài của lực căng dây T theo thời gian

lpt = lucpt._xscale = lp*Math.sin(api);// độ dài của thành phần lực Pt //tọa độ 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;

noipn._xscale = lpt*1.7;//độ dài của đoạn nối trọng lực với thành phần lực Pn noipt._yscale =lpn*1.85;//độ dài của đoạ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ọa độ x của chữ α

//hoặc nếu i1 không lớn hơn 0 thì

else { l1._rotation = 0;//sợi dây l1 trở về vị trí ban đầu

batdau(); //thực hiện đối tượng batdau ()

timing1=false;timing2=true;}}//biến timing1, timing2 được gán bằng false, true //khai báo đối tượ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

Trang 26

l2._visible = true; l0._visible = true;//hiển thị sợi dây l2, l0

i2 = Math.sin(w2*t2);//biến i2

b = 40;//biên độ góc của con lắc sau khi vướng đinh

bpi = -b*i2*Math.PI/180;//biên độ góc theo radian

//nếu i2 > 0 thì

if (i2 > 0){ //bắt đầu theo thời gian

//các đối tượng sau quay theo chiều kim đồng hồ

l2._rotation = b*i2; luct._rotation = b*i2; lucpn._rotation = b*i2;

lucpt._rotation = b*i2; noipn._rotation = b*i2; noipt._rotation = b*i2; //tọa độ của quả nặng theo thời gian sau khi con lắc bị vướng đinh

vat._x = x0 + dodail2*Math.sin(bpi);

vat._y = y0 - dodail2 + dodail2*Math.cos(bpi);

lpn = lucpn._yscale = lp*Math.cos(bpi);//độ dài lực thành phần Pn

//tọa độ của chữ Pn theo thời gian

chupn._x = xvat + 1.3*lpn*Math.sin(bpi);

chupn._y = yvat + lpn*Math.cos(bpi) + 30;

luct._yscale = lpn;//độ dài của lực căng dây T theo thời gian

lpt = lucpt._xscale = lp*Math.sin(bpi);//độ dài lực thành phần Pt

//tọa độ của chữ Pt và chữ T theo thời gian

chupt._x = xvat - 1.6*lpt*Math.cos(bpi);

chupt._y = yvat + lpt*Math.sin(bpi) + 15;

chut._x = xvat - 0.5*lpn*Math.sin(bpi);

chut._y = yvat - lpn*Math.cos(bpi)/1.1;

noipn._xscale = lpt*1.7;//độ dài đoạn nối giữa trọng lực và thành phần Pn noipt._yscale = lpn*1.85;// độ dài đoạn nối giữa trọng lực và thành phần Pt gocb._x = x0 + dodail2/4*Math.sin(bpi);}//tọa độ x của chữ β

//hoặc nếu i2 không lớn hơn 0 thì

else { l2._rotation = 0; //l2 trở về vị trí ban đầu

batdau (); //thực hiện đối tượng batdau ()

timing2=false;timing1=true;}}//biến timng1, timing2 được gán bằng true, false

Trang 27

//khi bắt đầu chạy Frame

onEnterFrame = function() {

//nếu timing1 bằng true

if (timing1) { t1 = t1 + 0.01;//thời gian t1 tăng theo hệ số 0.01

dao_dong1();//thực hiện đối tượng dap_dong1 ()

//hiển thị các thành phần sau

nut2._visible = true; goca._visible = true;

gocb._visible = false;}//ẩn chữ β

//nếu timing2 bằng true

if (timing2) { t2 = t2 + 0.01;//thời gian t2 tăng theo hệ số 0.01

dao_dong2(); //thực hiện đối tượng dao_dong2 ()

goca._visible = false;//ẩn chữ α

gocb._visible = true;}//hiện chữ β

xvat = vat._x; yvat = vat._y; //đặt biến xvat, yvat là tọa độ cảu quả nặng theo thời gian

//tọa độ của các đối tượng khác theo thời gian

trongluc._x=xvat; trongluc._y = yvat; luct._x = xvat; luct._y = yvat;

lucpt._x = xvat; lucpt._y = yvat; lucpn._x = xvat; lucpn._y = yvat;

noipn._x = xvat; noipn._y = yvat + lp +20; noipt._x = xvat;

noipt._y = yvat + lp + 20; clear();

lineStyle(1.500000, 65280, 100);//vẽ đường thẳng là đường vẽ góc α

moveTo(cham1._x, cham1._y);//nối từ

lineTo(goca._x, goca._y);//đến điểm

lineStyle(1.999000, 75280, 100);// vẽ đường thẳng là đường vẽ góc β

moveTo(cham2._x, cham2._y);//nối từ

lineTo(gocb._x, gocb._y);}//đến điểm

//khi bấm nút play thứ hai

unpausebutton2.onPress=function() { chaytiep2();}//thực hiện đối tượng chaytiep2 () //khi bấm nút pause

pausebutton.onPress=function() {tamdung();}//thực hiện đối tượng tamdung ()

Trang 28

//khi bấm nút stop

nutstop.onPress= function() {batdaulai();//thực hiện đối tượng batdaulai () unpausebutton1._visible = true;//hiện nút play thứ nhất

unpausebutton2._visible = false;//ẩn nút play thứ hai

luct._rotation = 0;}//lực căng dây T xác định tại ví trí cân bằng

//khi bấm nút play thứ hai

unpausebutton1.onPress = function (){chaytiep1 ();}//thực hiện đối tượng này

- Trong nút chứa thông tin cần ghi nhớ

on (press){ ghinho._visible = !ghinho._visible ;}

- Trong nút chứa câu hỏi

on (press){ cauhoi._visible = !cauhoi._visible;}

Nhấn Ctrl + Enter xem kết quả (hình 13)

(hình 13)

Ngày đăng: 30/09/2014, 20:53

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w