The My Opera forums have been replaced with forums.opera.com. Please head over there to discuss Opera's products and features

See the new Forums

Hướng dẫn giải bài tập đồng hồ của thầy ngày 3-11

Forums » Học actionscript3 » Bài tập actionscript Về nhà

You need to be logged in to post in the forums. If you do not have an account, please sign up first.

Go to last post

5. November 2011, 04:04:49

Hướng dẫn giải bài tập đồng hồ của thầy ngày 3-11

Đầu tiên tải 2 hìn đồng hồ sau:



-Đưa 2 ảnh vào thư viện.
-Tạo 3 đối tượng Movie :
+Giây: đật tên giay.
+Phút: phut
+Giờ : gio
đưa tâm các kim giây phút giờ về tâm mỗi đồng hồ.
-Làm xong ta được hình dưới:



-----codde:
-Ta dùng code sau đề lấy ngày giờ hệ thống:
var tg:Date = new Date(  ); // báo biến thời gian
trace(tg.getSeconds(); //giây
trace(tg.getMinutes()); // phút
trace(tg.getHours()); // giờ.

-ta sư dụng hàm rotation đề xoay,( giay.rotation, phut.rotation,gio.rotation), giả sừ từ 12-> có góc 90 độ, chia 3 mỗi phần 30 độ, mỗi phần chia ra năm => góc xoay 1 đơn vi thời gian là 6 độ, ta code như sau. tương tự có kim giờ 30 độ
+giay.rotation+=6
+phut.rotation+=6; giay.rotation+=6
+gio.rotation+=30;
-Như hình bên có vấn đề là ta đặt về kim giờ điều bắt đầu ớ 12 hết nên khi ta chạy sẽ bắt đầu từ 12, nên ta đặt cho đúng vị trí như sau
var lanchay:int;
lanchay++; 
if(lanchay==1) // nếu lần chạy đầu tiên thì gán các kim đúng vị trí.
{
	tgiay=tg.getSeconds();
	giay.rotation+=6*tgiay;
	//gan kim phut ban dau
	tphut=tg.getMinutes();
	phut.rotation+=6*tphut;
	//gan kim gio ban dau
	tgio=tg.getHours();
	gio.rotation+=30*tgio;
}

-Xử lý kim giây:
giay.rotation+=6;
tgiay++;
//tang kim phut
if(tgiay==60)
{
	phut.rotation+=6;	
	tgiay=0;
	tphut++;
}

-Xử lý kim phút:
if(tphut==60)
{
gio.rotation+=30;// xoay góc 30 độ tính từ vị trí hiện tại khi tphut=60 giây,
tphut=0; // đồn thời gắn kim phút về 0.
}

code tổng thể chương trình:
var tgiay:int;
var tphut:int;
var tgio:int;
var lanchay:int;
var tg:Date = new Date(  );
//tinh phut
lanchay++;
//trace(lanchay);
if(lanchay==1)
{
	tgiay=tg.getSeconds();
	giay.rotation+=6*tgiay;
	//gan kim phut ban dau
	tphut=tg.getMinutes();
	phut.rotation+=6*tphut;
	//gan kim gio ban dau
	tgio=tg.getHours();
	gio.rotation+=30*tgio;
}
giay.rotation+=6;
tgiay++;
//tang kim phut
if(tgiay==60)
{
	phut.rotation+=6;	
	tgiay=0;
	tphut++;
}
//tang kim gio
if(tphut==60)
{
	gio.rotation+=30;
	tphut=0;
}

-Tải file tham thảo: http://www.mediafire.com/?74v15i327fl36

Forums » Học actionscript3 » Bài tập actionscript Về nhà