Tạo Lịch và Đồng Hồ với Macromedia Flash:
Bước 1: Đầu tiên, mở một tài liệu flash mới.
Bước 2: Nhấn vào Text tool (T), tạo 3 đối tượng Text có nội dung là "Time", "Today" và "Date".
Chú ý, đây là các Static Text nhé.
Bước 3: Bây giờ, chúng ta chúng ta tạo tương ứng 3 Dynamic Text với các Static Text chúng ta vừa tạo ở
bước 2, và đặt nó bên cạnh những Static Text đó.
Bước 4: Sau khi tạo xong các Dynamic Text, chúng ta đặt tên cho chúng theo cách mà bạn đã làm ở trên.
Bạn chọn Hộp Dynamic đầu tiên bên cạnh chứ "Time", sau đó chuyển đến cửa sổ Properties (Ctrl + F3)
và đặt tên là "nTime".
Bước 5: Ta làm tương tự với các hộp Dynamic còn lại. Hộp Dynamic bên cạnh "Today" đặt tên là
"displayDay" và bên cạnh "Date" có tên là "displayDate". Hãy nhớ là đặt tên cho các Dynamic Text chứ không
phải là Static Text.
Bước 6: Tiếp theo, nhấn vào hộp Static đầu tiên và chuyến đổi nó thành biểu tượng bằng cách Chọn nó và
nhấn F8, đảm bảo ô "Movie clip" được check và đặt tên tùy theo ý bạn muốn.
Bước 7: Bây giờ các bạn hãy chọn 2 hộp Dynamic còn lại và chuyển nó thành 1 biểu tượng. Hãy chắc
chắn rằng tạo cả 2 hộp đó thành 1 biểu tượng và đặt tên tùy ý bạn chọn.
Bước 8: Bây giờ các bạn hãy chọn biểu tượng trên cùng và nhấn F9 để mở cửa sổ ActionScript. Và dán
đoạn mã sau vào:
onClipEvent (enterFrame) {
myTime = new Date();
nSeconds = myTime.getSeconds();
nMinutes = myTime.getMinutes();
nHours = myTime.getHours();
if (nHours>=12) {
ampm = "pm";
} else {
ampm = "am";
}
if (nHours>=13) {
nHours = nHours-12;
}
if (length(nMinutes) == 1) {
nMinutes = "0"+nMinutes;
}
if (length(nSeconds) == 1) {
nSeconds = "0"+nSeconds;
}
nTime = nHours+":"+nMinutes+":"+nSeconds+" "+ampm;
}
Bước 9: Tiếp theo, chúng ta chọn các biểu tượng khác là "today" và "date" và mở lại của sổ ActionScript
(F9), dán đoạn mã sau vào:
onClipEvent (load) {
mon = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sept", "Oct", "Nov", "Dec"];
weekdays = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday",
"Saturday"];
}
onClipEvent (enterFrame) {
now = new Date();
nDay = weekdays[now.getDay()];
nMonth = mon[now.getMonth()];
nDate = now.getDate();
nYear = now.getFullYear();
displayDate = nMonth+" "+nDate+", "+nYear;
displayDay = nDay;
}
OK. Nếu Bạn nhấn tổ hợp phím (Ctrl + Enter), bạn sẽ nhìn thấy đoạn Movie clip của bạn
hoạt động, nó sẽ hiển thị thời gian, ngày hôm nay cũng như ngày của tháng (Nếu ko có gì
sai xót xảy ra...). Sau đây, mình sẽ giải thích về một số đoạn code.
Giải Thích Code
A/ TIME CODE:
onClipEvent (enterFrame) {
Phần này của đoạn code lặp lại các hành động chứa bên trong nó mỗi khi Movie Clip
được truy cập.
myTime = new Date();
Đoạn mã trên tạo một đối tượng Date mà sẽ được sử dụng để nhận thông tin từ hệ thống.
nSeconds = myTime.getSeconds();
nMinutes = myTime.getMinutes();
nHours = myTime.getHours();
Đoạn này định nghĩa các biến giây, phút, giờ và nhận thông tin từ hệ thống và cùng hoạt
động trong file Flash.
if (hours>=12) {
ampm = "pm";
} else {
ampm = "am";
}
Câu lệnh IF kiểm tra xem giờ có lớn hơn hay bằng 12 hay không và chuyển về dạng am
hoặc pm.
if (hours>=13) {
nHours = nHours-12;
}
Bởi vì Flash hiển thị thời gian trong hệ thống giờ 24 thay vì hệ thống giờ 12, câu lệnh IF
bên trên được sử dụng chuyển về hệ thống giờ 12 nếu giờ lớn hơn hoặc bằng với 13 ( 13
- 12 = 1)
if (length(nMinutes) == 1) {
nHinutes = "0"+nMinutes;
}
if (length(nSeconds) == 1) {
nSeconds = "0"+nSeconds;
}
Cả 2 câu lệnh IF trên đều dùng để chèn thêm số "0" ở đằng trước giây và phút nếu độ dài
của chúng bằng 1, có nghĩa là các biến phải nhỏ hơn 10..
nTime = nHours+":"+nMinutes+":"+nSeconds+" "+ampm;
}
Dòng lệnh trên hiển thị thời gian sử dụng Hộp Dynamic được đặt tên là "nTime" mà đã tạo
ở bên trên.
B/ DATE CODE:
onClipEvent (load){
Dòng Lệnh thực hiện các hành động chứa trong ngoặc đơn chỉ khi Movie Clip được load.
Điều này cũng thường xuyên được sử dụng để định nghĩa các biến.
mon = ["Jan","Feb","Mar","Apr","May","Jun","Jul",
"Aug","Oct","Nov","Dec"];
weekdays = ["Sunday","Monday","Tuesday",
"Wednesday","Thursday","Friday","Saturday"];
bên Trên là 2 mảng mà được sử dụng để lưu trữ các ngày trong tuần và các tháng trong
năm. Vị trí đầu tiên của mảng bắt đầu từ số 0, tương đương với giá trị Jan - Tháng 1 trong
mảng "mon" và Sunday - Chủ Nhật trong mảng "weekdays". Thứ tự này bạn có thể thay
đổi tùy ý bạn sắp xếp.
now = new Date()
}
Dòng lệnh này để thực hiện việc tạo ra một đối tượng Date mà sẽ được sử dụng để nhận
thông tin về thời gian.
onClipEvent (enterFrame){
Dòng lệnh này lặp lại các hoạt cảnh và thực hiện các hành động mỗi khi Movie được truy
cập.
nDay = weekdays[now.getDay()]
nMonth = mon[now.getMonth()]
nDate = now.getDate()
nYear = now.getFullYear()
Các dòng lệnh trên đều được sử dụng để lưu trữ thông tin. Các mảng được chứa bên
trong ngoặc vuông "[]".
displayDate = nMonth+" "+nDate+", "+nYear
displayDay = nDay
}
Đoạn mã cuối cùng được sử dụng để hiển thị thông tin bên trong các trường Dynamic mà
đã được tạo từ ban đầu. Có rất nhiều cách để sử dụng các hiệu ứng này cũng như các
cách viết code để hiển thị các hiệu ứng đó. Đây chỉ là một cách mà tôi cảm thấy phù hợp
nhất và dễ nhất.
Nếu chỉ cần 1 dòng lịch ngày tháng và giờ thì chỉ tạo 1 hộp Dinamix Text
đặt tên là m_lich và dán đoạn code ở dưới vào là xong. Sau đó trang trí
thêm chữ và hình động thì được một banner đẹp.
onClipEvent (load) {
mon = ["tháng 01", "tháng 02", "tháng 03", "tháng 04", "tháng 05", "tháng 06", "tháng 07", "tháng
08", "tháng 09", "tháng 10", "tháng 11", "tháng 12"];
weekdays = ["Chủ Nhật", "Thứ Hai", "Thứ Ba", "Thứ Tư", "Thứ Năm", "Thứ Sáu", "Thứ Bảy"];
}
onClipEvent (enterFrame) {
now = new Date();
nDay = weekdays[now.getDay()];
nMonth = mon[now.getMonth()];
nDate = now.getDate();