Thứ Năm, 27 tháng 5, 2010

Bài 6: Câu lệnh điều kiện – Tự học lập trình Flash

Bạn đã thấy thông báo lỗi xuất hiện ở bảng Output. Khi bạn dừng chương trình (đóng cửa sổ swf), thông báo lỗi vẫn còn lưu lại trong bảng Output ở phía phải cửa sổ Flash để bạn “nghiền ngẫm”.

Lỗi như vậy gọi là lỗi lúc biên dịch (compile-time error). Chương trình không chạy được nếu có lỗi lúc biên dịch. Nếu chương trình chạy được nhưng lại tỏ ra “kỳ cục”, không đúng như dự kiến, người ta nói rằng chương trình có lỗi lúc chạy (run-time error).
Trong chương trình của mình, bạn có thể chủ động đưa thông báo ra bảng Output. Nhờ vậy, khi chạy chương trình, bạn dễ dàng theo dõi diễn biến thực tế, dễ dàng phát hiện nguyên nhân gây ra lỗi lúc chạy. Để thử đưa thông báo ra bảng Output, bạn hãy bấm chọn quả banh đang có lỗi biên dịch, gõ phím F9 để mở lại bảng Actions (nếu cần). Trong bảng Actions, bạn xóa câu lệnh sai, gõ đoạn mã mới như sau:

onClipEvent(mouseDown) {

_y -= 20;

trace(“Tôi đi lên đây.”);

}
Hàm onClipEvent giờ đây có hai câu lệnh. Câu lệnh đầu tiên làm cho quả banh xê dịch lên trên 20 điểm ảnh. Câu lệnh thứ hai là câu lệnh gọi hàm trace, làm cho quả banh biết thông báo về hành động của mình! Thông báo “Tôi đi lên đây” là đối mục của hàm trace. Về mặt cấu trúc, thông báo “Tôi đi lên đây” là một chuỗi ký tự, gọi tắt là chuỗi (string). Dùng bộ gõ UniKey thông dụng, bạn dễ dàng tạo ra ký tự Việt có dấu trong chuỗi. Khi dùng chuỗi, bạn đừng quên mở đầu và kết thúc chuỗi bằng dấu nháy (“).
Ấn Ctrl+Enter để chạy chương trình, bạn thấy mỗi lần bấm chuột, quả banh xê dịch lên trên và thông báo “Tôi đi lên đây” xuất hiện ở bảng Output (hình 1). Bạn hãy bấm chuột liên tiếp nhiều lần để thấy quả banh đi mất tiêu. Đó là khi tung độ _y vượt ra ngoài phạm vi hiển thị của sân khấu.

1 Bài 6: Câu lệnh điều kiện – Tự học lập trình Flash1 Bài 6: Câu lệnh điều kiện – Tự học lập trình Flash

Để quả banh không đi mất, bạn dừng chương trình, sửa nội dung hàm onClipEvent như sau:

onClipEvent(mouseDown) {

if(_y > 0) {

_y -= 20;

trace(“Tôi đi lên đây.”);

}

}
Những gì bạn vừa viết bên trong hàm onClipEvent là một câu lệnh điều kiện. Câu lệnh ấy ngụ ý: nếu tung độ _y của quả banh lớn hơn 0 thì mới xê dịch quả banh và đưa ra thông báo “Tôi đi lên đây” ở bảng Output. Điều kiện “tung độ _y lớn hơn 0″ phải được viết trong cặp dấu ngoặc ( ), đặt sau từ if. Những việc cần làm khi điều kiện được thỏa phải được viết bên trong cặp dấu gộp { }, đặt sau cặp dấu ngoặc ( ). Để Flash hiểu được những gì bạn viết, cần tuân thủ nghiêm ngặt các quy tắc vừa nêu.
Chạy lại chương trình và bấm chuột nhiều lần, bạn thấy quả banh rốt cuộc dừng lại, “không thèm” nhúc nhích nữa. Đó là khi điều kiện “tung độ _y lớn hơn 0″ không được thỏa, tức là khi _y nhỏ hơn hoặc bằng 0. Bạn chú ý, tung độ của quả banh là tung độ của điểm mốc. Chính bạn đã quy định điểm mốc nằm ở giữa cạnh dưới khung bao của quả banh.
Nếu muốn quả banh “nói năng” gì đó khi điều kiện “tung độ _y lớn hơn 0″ không được thỏa, chứ không im lìm, bạn viết thêm vào hàm onClipEvent:

onClipEvent(mouseDown) {

if(_y > 0) {

_y -= 20;

trace(“Tôi đi lên đây.”);

}

else {

trace(“Tôi không đi nữa.”);

}

}
Từ else giúp bạn diễn đạt trường hợp ngược với trường hợp được nêu bởi từ if. Việc cần làm khi điều kiện “tung độ _y lớn hơn 0″ không được thỏa phải được ghi bên trong cặp dấu gộp { } theo sau từ else. Nhờ viết như vậy, lúc chạy chương trình, quả banh thông báo “Tôi không đi nữa” nếu tung độ của nó không lớn hơn 0. Lời từ chối đó cho bạn thấy quả banh tuy trơ trơ nhưng vẫn hiểu bạn đang bấm chuột thúc giục nó.
Với hai quả banh còn lại “chưa có cá tính”, ta cũng thử lập trình cho chúng có hành vi khác biệt. Trước khi làm như vậy, bạn nên cho hai quả banh còn lại có màu khác cho dễ phân biệt: một xanh, một cam chẳng hạn. Bạn không thể chọn màu tô khác nhau cho các thể hiện khác nhau của một nhân vật nhưng có thể chọn màu nhuộm (tint color) khác nhau cho chúng. Cụ thể, bạn hãy chọn quả banh “chưa có cá tính”, ấn Ctrl+F3 để mở cửa sổ Properties tương ứng, chọn Tint trong ô Color, bấm vào ô màu kế bên và chọn màu trong bảng màu. Muốn màu nhuộm lấn át màu tô, bạn ghi 100% trong ô Tint Amount: . Bằng cách đó, bạn có được ba thể hiện của nhân vật Ball có màu khác nhau (hình 2).
Bạn chọn quả banh màu xanh, gõ đoạn mã như sau trong bảng Actions:

onClipEvent(mouseDown) {

if(_yscale == 100) {

_yscale = 200;

}

else {

_yscale = 100;

}

}
Để thử đoán nhận hành vi của quả banh màu xanh, bạn cứ chạy chương trình xem sao.

2 Bài 6: Câu lệnh điều kiện – Tự học lập trình Flash

Theo echip.com

Đọc thêm :

Tổng hợp các bài tự học lập trình Flash
Downloads công cụ lập trình Flash – Flash Development tool 3.1

Thứ Tư, 26 tháng 5, 2010

Các hàm trong Flash

Function (Hàm)

Hàm onClipEvent
:
Hàm onClipEvent dùng để diễn đạt việc cần làm khi xảy ra một tình huống (event) nào đó đối với thể hiện đang xét. Người ta gọi đó là hàm xử lý tình huống (event handler). Khi lập trình cho thể hiện (quy định hành vi của nó), bạn chỉ được phép viết các hàm xử lý tình huống, không thể viết câu lệnh tùy ý bên ngoài phạm vi của hàm xử lý tình huống.
VD:
onClipEvent(mouseDown) {
_y = _y + 20;
}

Hướng dẫn làm hiệu ứng kính lúp trong flash


Bạn di chuột vào flash này xem có ngạc nhiên không




Đầu tiên cần chuẩn bị 2 ảnh giống nhau, 1 ảnh nguyên gốc và 1 ảnh đã xử lí bằng bộ lọc (filter), ở đây em chọn filter là blur (có thể dùng Photoshop cho dễ)
Trong ví dụ này mình chỉ làm 1 ảnh, nhưng mình sẽ làm cho kích thước nó to nhỏ khác nhau để giống kiểu kính lúp hơn

Bước 1: Bạn tạo 1 file flash mới có kích thước 640 x 480 (đó là kích thước bức ảnh của mình còn tuỳ vào bức ảnh của bạn to hay nhỏ mà chọn kích thước sao cho hợp lý).

Bước 2: bạn tạo 4 layer như trong hình vẽ, ở layer 1 bạn import cái ảnh vào, nhớ set position chính giữa nhé (ở đây cần nói thêm cho các bạn newbies hiểu, muốn set position đúng chính giữa thì cách dễ nhất là sử dụng properties, chỉ cần chọn cái ảnh, mở properties lên, ngay chỗ X, Y điền vào số 0 hết).




Bước 3: Ở layer 2 thì copy và pase cái ảnh ở layer 1 sang, cũng set position chính giữa nhé.

Bước 4: Ở layer thứ 3, dùng công cụ Oval tool vẽ 1 vòng tròn, màu gì cũng được, vì bước sau chúng ta sẽ convert layer này thành mask layer. Tiếp theo chọn vòng tròn này (nhớ chọn luôn phần viền ngoài (stroke)) và convert nó thành Movie Clip, tên là c1 và instance name cũng là c1.

Bước 5: Convert cái layer thứ 3 thành mask layer bằng cách click chuột phải vào layer, chọn mask.



Bước 6: Ở layer trên cùng vẽ 1 vòng tròn cùng kích cỡ với vòng tròn c1 ban nãy, nhưng không có phần fill, chỉ là stroke thôi nhé, phần stroke để dày lên cho dễ nhìn. Chọn vòng tròn này và convert nó thành Movie Clip, tên là c2 và instance name cũng là c2.

Bước 7: thế là chúng ta đã hoàn thành phần hình ảnh, bây giờ bắt tay vào viết code:

Chọn frame 1 layer 4 và viết vào đó đoạn code này:
this.onEnterFrame = function () { c1._x = _xmouse; c1._y = _ymouse; c2._x = _xmouse; c2._y = _ymouse; };


Bước 8: Tới đây movie của chúng ta vẫn chưa giống kính lúp hẳn, cần phải làm thêm sao cho phần trong vòng tròn phóng to lên một chút nữa thì sẽ giống hơn nhỉ.
Bạn scale cái ảnh ở layer thứ 2 cho lớn hơn khoảng 50% (dùng công cụ Free tránform tool để kéo to bức ảnh ra.), đặt nó ở vị trí trên chếch chếch 1 chút *-:). convert nó thành Movie Clip tên là i1, instance name cũng là i1.


Sau đó thêm đoạn code này vào đoạn code lúc nãy (dưới dòng c2._y = _ymouse)
i1._x = _xmouse - (_xmouse/512)*i1._width + i1._width/2; i1._y = _ymouse - (_ymouse/384)*i1._height + i1._height/2;


Và bây giờ chúng ta có đoạn code hoàn chỉnh:
this.onEnterFrame = function (){ c1._x = _xmouse; c1._y = _ymouse; c2._x = _xmouse; c2._y = _ymouse; i1._x = _xmouse - _xmouse / 640 * i1._width + i1._width / 2; i1._y = _ymouse - _ymouse / 480 * i1._height + i1._height / 2; };



Note: Đây chỉ là ví dụ cơ bản, các bạn có thể biến tấu theo những cách khác dựa trên bài hướng dẫn cơ bản này. Chúc các bạn có những tác phẩm độc đáo và tuyệt đẹp

Hiệu ứng tạo mặt nước chuyển động trong flash.

Bài này mình sẽ giới thiệu tới các bạn một hiệu ứng làm mặt nước chuyển động tự nhiên, với một đoạn code trong flash là bạn có thể làm được một hiệu ứng mới rồi, hiệu ứng này có thể áp dụng làm các baner về phong cảnh vv... Chúc các bạn thành công.



Bước 1:

Tạo 2 layer: Layer1: Đặt tên là mặt nước

Layer2: Đất và trời

Bước 2 :

Tại layer1, các bạn import một bức ảnh vào làm đối tượng để thực hành. Vào menu File > Import > Import to Stage (Ctrl +R) để đưa 1 bức ảnh bạn đã chuẩn bị sẵn vào phần thiết kế.

Bước 3 :

Tại layer1 click chuột phải vào bức ảnh ở khung trình chiếu và chọn "Break Apart" (Ctrl +B)


Bước 4 :

Vẫn ở phần layer1 các bạn sử dụng công cụ Lasso Tool (L) và chọn tất cả những phần mà chúng ta không muốn làm hiệu ứng trên đó.( vẽ ra những phần không làm) Mình vẽ như hình bên dưới :


- Sau khi đã chọn xong các bạn Copy (Ctrl + C), chọn Layer "Đất & Trời" và Paste vào đó (Edit Paste in Place)

Bước 5 :

Bây giờ chúng ta chọn lại Layer "Mặt Nước" và convert bức ảnh ở khung trình chiếu sang Movie Clip. Modify > Convert to Symbol,( Ấn phím f8 nó cũng chuyển sang dạng symbol đặt tên là matnuoc_mc.

Sau đó các bạn vào phần menu ở phía bên dưới có chữ Properties bạn kick vào đó chọn trong phần texbox chữ Movie clip rồi thay xóa chữ Instance Name và viết bằng chữ matnuoc_mc.

Chú ý : Phần này bạn phải ghi đúng tên để khi vào đoạn code flash còn phải gọi tên này ra, nếu bạn ghi sai tên là mặt nước không chuyển động được, tên này phải trùng với tên khi bạn gọi ra trong đoạn code thì nó mới hiển thị được đoạn code. Hình minh họa bên dưới Hình 1a

Hình 1a

Bước 6 :

Các bạn hãy tạo thêm 1 Layer mới (gọi là Action Script).

- Click chọn Frame đầu tiên, ấn F9 để mở cửa sổ Action Script và dán đoạn mã sau vào :

import flash.display.*;
import flash.geom.*;
import flash.filters.*;
myBitmap = new BitmapData(390,293,false,0);
pt = new Point(0,0);
mpoint = new Point(0,0);
myDispl = new DisplacementMapFilter(myBitmap, mpoint,1,2,10,50);
matnuoc_mc.myList = new Array();
matnuoc_mc.myList.push(myDispl);
matnuoc_mc.filters = matnuoc_mc.myList;
i = 1;
this.onEnterFrame = function()
{
filterList = matnuoc_mc.filters;
offset = new Array();
offset[1] = new Object();
offset[1].x = i;
offset[1].y = i/8;
myBitmap.perlinNoise(45,5,3,50,true,false, 7,true,offset);
filterList.mapBitmap = myBitmap;
matnuoc_mc.filters = filterList;
i++;
}

Bước7:

Bây giờ sản phẩm của chúng mình đã xong, các bạn chỉ cần ấn Ctrl + Enter để kiểm tra kết quả. Chúc các bạn thành công.

Hình 1: Sản phẩm sau khi làm xong


Tạo vệt ánh sáng từ trên cao dọi xuống

1. Tạo một file có thông số như hình 1 (bạn hãy nhớ kĩ là mình đã chọn màu gì cho background nhé)


Hình 1

2. Chọn công cụ Rectangle Tool, bỏ màu viền và chọn màu tô sáng sáng như hình 2


Hình 2

3. Vẽ một hình chữ nhật như hình 3


Hình 3

4. Dùng công cụ Selection Tool để chình nó thành tam giác có đáy tròn tròn như hình 4


Hình 4

5. Nhấp chuột phải vào Frame 2 và chọn Insert KeyFrame như hình 5


Hình 5

6. Thực hiện tương tự Bước 5 cho các Frame 3, 4, 5, 6, 7

7. Tạo một Layer mới trên Layer 1 hiện có (xem hình 6)


Hình 6

8. Nhấp chọn Frame 1 của Layer 2 (mới tạo). Chọn công cụ Text tool và gõ vào dòng chữ Quantrimang.com (xem hình 7)


Hình 7

9. Nhấp chuột phải vào Frame 2 của Layer 2 và chọn Insert KeyFrame (xem hình 8)


Hình 8

10. Thực hiện tương tự Bước 9 cho các Frame 3, 4, 5, 6, 7 của Layer 2

11. Nhấp chuột vào Frame 1 của Layer 2 để chọn nó, chọn công cụ Text tool, dùng chuột bôi đen các kí tự nằm ngoài tam giác đã tạo trong Bước 4, và chỉnh màu của chúng trùng với màu của background (xem hình 9 sau khi đã chỉnh màu lại)


Hình 9

12. Nhấp chọn Frame 2 của Layer 1, nhấp chuột phải vào tam giác và chọn Free Transform rồi chỉnh tam giác to hơn chút đỉnh (xem hình 10)


Hình 10

13. Thực hiện tương tự Bước 11 cho Frame 2 của Layer 2

14. Thực hiện tương tự cho các Frame còn lại của 2 Layer

15. Nhấn Ctrl + Enter để kiểm tra kết quả.

Bài 3 :Khung chốt của hoạt cảnh trong lập trình Flash

Bạn đã viết câu lệnh đầu tiên trong Flash

ball1._xscale = 200;
và chạy thử chương trình chỉ có một câu lệnh ấy. Trong câu lệnh đó, giữa tên nhân vật ball1 và tên biến _xscale có dấu chấm để phân cách. Biến _xscale là biến có sẵn trong mọi nhân vật của Flash. Vế trái của câu lệnh đọc là “biến _xscale của nhân vật ball1″.

Toàn bộ câu lệnh đọc là “gán trị số 200 cho biến _xscale của nhân vật ball1″. Khi không sợ nhầm lẫn, ta có thể gọi “thể hiện ball1 của nhân vật Ball” là “nhân vật ball1″. Bạn chú ý, cần có dấu chấm phẩy (;) để kết thúc câu lệnh.
Xem lại thư mục chứa tập tin fla, bạn thấy có thêm tập tin mới thuộc loại swf. Nếu tập tin chứa quả banh của bạn có tên Ball.fla, tập tin mới được tạo ra có tên Ball.swf (chỉ khác phần phân loại). Trước đây, khi bạn ấn Ctrl+Enter, Flash đã ghi xuống tập tin chương trình swf và chạy chương trình đó. Chính tập tin swf mới là chương trình chạy được, có thể dùng trong trang Web. Việc chuyển đổi tập tin fla thành tập tin swf chạy được gọi là biên dịch (compile).
Đối với bạn, swf là một chương trình. Đối với người xem trang Web, swf là một hoạt cảnh (animation) hoặc trò chơi (game).
Phía trên sân khấu, trong bảng Timeline, bạn thấy có một thanh dài với các số 1, 5, 10,… Đó là số thứ tự của các khung hình (frame), gọi tắt là khung. Diễn biến của chương trình trong Flash theo dòng thời gian giống như một đoạn phim, nên cũng có khái niệm “khung hình”. Mỗi ô ở ngay dưới thanh ghi số thứ tự biểu diễn một khung hình. Dải ô như vậy gọi là thời tuyến (timeline).
Trong bảng Timeline, bạn thấy ở số 1 có một ô màu đỏ hồng (hình 1). Người ta gọi đó là đầu đọc (playhead). Đầu đọc đang ở khung 1 cho biết bạn đang xem khung 1 (những gì hiện có trên sân khấu là nội dung của khung 1). Trong ô tương ứng với khung 1 có chữ a be bé, ngụ ý nói rằng có câu lệnh ActionScript được ghi ở khung 1.

31 Bài 3 :Khung chốt của hoạt cảnh trong lập trình Flash

Nội dung của khung 1 mặc nhiên được duy trì trong các khung tiếp theo trừ khi bạn chủ động thay đổi. Giả sử bạn muốn ở khung 5, quả banh trở về kích thước bình thường, không bị kéo dãn theo phương ngang nữa.
Muốn vậy, trước hết bạn báo cho Flash biết có sự thay đổi ở khung 5 bằng cách bấm-phải vào khung 5 (ta có thể gọi tắt như vậy thay vì nói rõ “ô tương ứng với khung 5″), chọn mục Convert to Keyframes trong trình đơn vừa hiện ra. Thao tác này chuyển đổi khung thường thành khung then chốt (keyframe), gọi tắt là khung chốt, giúp Flash hiểu rằng phải cẩn thận xem xét lại mọi thứ ở khung 5 vì nó khác với khung trước.
Chính bạn tạo ra sự khác biệt ở khung 5 bằng cách bấm vào khung soạn thảo của bảng Actions (nếu không thấy nó, bạn gõ phím F9) và gõ câu lệnh:

1
ball1._xscale = 100;

Câu lệnh như vậy gán trị 100 cho biến _xscale của nhân vật ball1, quy định độ co dãn theo phương ngang của ball1 là 100%, tức là không co dãn gì nữa. Vào lúc chạy chương trình, khi hiển thị đến khung 5, Flash sẽ thi hành câu lệnh mà bạn vừa viết.
Quan sát thời tuyến, bạn thấy đầu đọc đã nhảy đến khung 5 (hình 2), nghĩa là những gì bạn thấy trên sân khấu thuộc về khung 5. Tại khung 5 có dấu tròn màu đen cho biết đó là khung chốt. Khung 5 cũng có chữ a giống như khung 1 để nói rằng có câu lệnh ActionScript được viết cho khung 5. Nhận ra dấu tròn đen ở khung 1, có lẽ bạn thắc mắc ngay: “Vậy khung 1 cũng là khung chốt?”. Vâng, đúng vậy, khung 1 luôn luôn là khung chốt theo mặc định.
Khung thường ngay trước khung chốt được đánh dấu bằng một dấu chữ nhật màu trắng. Dấu như vậy cho thấy rõ sự kết thúc của một loạt khung giống nhau.

32 Bài 3 :Khung chốt của hoạt cảnh trong lập trình Flash

Ấn Ctrl+Enter để biên dịch và chạy chương trình, bạn thấy quả banh “phập phồng” liên tục do câu lệnh ActionScript ở khung 1 và khung 5 được thi hành lặp đi lặp lại. Đóng cửa sổ Ball.swf (cửa sổ trình diễn hoạt cảnh) vừa mở, rồi gõ phím F12 (hoặc chọn File > Publish Preview > Default – HTML), bạn thấy cửa sổ trình duyệt xuất hiện, trình bày tập tin Ball.html. Quả banh của bạn “diễn trò” thoải mái trong cửa sổ trình duyệt. Đó là nhờ tập tin Ball.html có chứa liên kết trỏ đến tập tin Ball.swf. Điều này giúp bạn hình dung hoạt cảnh của mình trông ra sao khi được đặt trong trang Web.
Xem xong, bạn đóng cửa sổ trình duyệt, trở về cửa sổ Flash, ấn Ctrl+S để lưu lại thành quả của mình trong tập tin Ball.fla.

Đọc thêm : Tổng hợp 31 bài trong tự học lập trình Flash

Thứ Ba, 25 tháng 5, 2010

Hướng dẫn dùng Flash để lấy thông tin ngày tháng

Bài viết này sẽ hướng dẫn cách lấy thông tin ngày tháng trong Flash và hiện ra ngày giờ trong Flash 1 cách đơn giản

dong_ho

I. Lý thuyết: Giới thiệu về lớp Date trong Flash

Để lấy được ngày tháng trong Flash cần phải sử dụng ActionScript (AS). Cách đơn giản nhất là lấy thông tin từ lớp Date mà Flash đã cung cấp sẵn.

1. Đầu tiên cần khai báo một đối tượng thuộc lớp Date:

var date:Date = new Date();

2. Sau khi khai báo như trên, biến date sẽ có trong mình các thông tin về thời gian của máy mà ta cần lấy.

Chú ý: Cách này sẽ lấy thời gian của máy tính hiện đang chạy file flash, nên nếu thời gian trên máy tính đó bị thiết lập sai thì thời gian lấy được cũng bị sai.

+Để biết hôm nay là ngày bao nhiêu:

var ngay = date.getDate();

+Để biết tháng này là tháng nào:

var thang = date.getMonth() + 1;

(vì hàm date.getMonth() trả về số thứ tự của tháng trong năm, bắt đầu từ 0 tới 11 nên ta cần cộng thêm 1 để lấy được tháng thật)

+Để biết năm nay là năm nao:

var nam = date.getFullYear() ;

+Để biết hôm nay là thứ mấy:

var thu = date.getDay();

(hàm date.getDay() trả về số thứ tự của ngày trong tuần, tương ứng sẽ là:

0: Chủ nhật, 1: Thứ hai, 2: Thứ ba, .... , 6: Thứ bảy)

Vì ta cần hiển thị ra thứ dưới dạng chữ (Thứ hai, Thứ ba,...) chứ không phải là các con số nên có thể dùng 1 cách khá nhanh gọn đó là khai báo 1 mảng (Array) chứa tên của các thứ trong tuần:

var ten_thu = ["Chủ nhật", "Thứ hai", "Thứ ba", "Thứ tư", "Thứ năm", "Thứ sáu", "Thứ bảy"];

Sau đó dựa vào số thứ tự do hàm date.getDay() trả về, ta dễ dàng lấy được tên của thứ trong tuần:

var thu = ten_thu[date.getDay()];

vd:

với date.getDay() = 0, ta có: thu = ten_thu[0] = "Chủ nhật"

với date.getDay() = 4, ta có: thu = ten_thu[4] = "Thứ năm"

.....

+Để biết giờ hiện tại:

var gio = date.getHours();

+Để biết phút hiện tại:

var phut = date.getMinutes();

+Để biết giây hiện tại:

var giay = date.getSeconds();

II. Thực hành

B1.

Mở chương trình Flash 8, tạo 1 file mới (chú ý nếu chương trình sử dụng là Flash CS3 hoặc Flash CS4 (Flash 9 hoặc Flash 10) thì cần phải chọn kiểu file là Flash ActionScript 2)

newdoc

newdoc2_500

B2.

Bấm vào công cụ có tên Text Tool trên thanh công cụ và bấm vào stage để tạo ra 1 ô text (có thể gõ mẫu vài chữ số vào ô text đó để dễ sắp xếp sau này), chọn kiểu cho ô text đó là Dynamic Text, sau đó đặt Instance name cho ô text đó là gio_txt. Đây là ô sẽ hiện giá trị của giờ hiện tại

textfield_500

B3.

Làm tương tự bước 2 để tạo thêm 2 Dynamic Text nữa với Instance name lần lượt là phut_txtgiay_txt. Hai ô này là để hiện phút và giây hiện tại.

giophutgiay

B4.

Tạo thêm 2 ô text, mỗi ô viết một dấu hai chấm ":", và chèn các dấu hai chấm vào giữa các ô text như hình vẽ

giophutgiay2

B5.

Tiếp tục làm giống bước 2 để tạo 1 Dynamic Text với Instance name được đặt là ngay_txt. Ô này sẽ hiện thông tin về ngày tháng hiện tại.

ngay

B6.

Bấm vào frame 1 trên timeline và bấm F9 để hiện ra cửa sổ soạn thảo ActionScript.

Nhập vào đoạn code sau đây (hầu hết các phần của đoạn code này đã được giải thích ở phần Lý thuyết rồi, nếu có gì thắc mắc thầy cô có thể hỏi lại):

var ten_thu:Array = ["Chủ nhật", "Thứ hai", "Thứ ba", "Thứ tư", "Thứ năm", "Thứ sáu", "Thứ bảy"];

this.onEnterFrame = function():Void {
var date:Date = new Date();
var thu = ten_thu[date.getDay()];
var ngay = date.getDate();
var thang = date.getMonth() + 1;
var nam = date.getFullYear();
ngay_txt.text = thu + ", " + ngay + "/" + thang + "/" + nam;

var gio = date.getHours();
var phut = date.getMinutes();
var giay = date.getSeconds();
if (gio < 10) gio = "0" + gio; // nếu giờ hiện tại <10 thì thêm số 0 vào đầu
if (phut < 10) phut = "0" + phut; // nếu phút hiện tại <10 thì thêm số 0 vào đầu
if (giay < 10) giay = "0" + giay; // nếu giây hiện tại <10 thì thêm số 0 vào đầu
gio_txt.text = gio;
phut_txt.text = phut;
giay_txt.text = giay;
}

as

B7.

Nhấn Ctrl + S để lưu lại file vừa tạo và Nhấn Ctrl + Enter để test thử chương trình.

Với đoạn code và cách làm như trên, chương trình sẽ hiện ra kết quả như thế này:

B8.

Bước này tùy vào ý thích mà các thầy cô có thể trang trí thêm và sửa đổi đoạn mã để tạo ra các file Flash đẹp như ý. Một vài kết quả ví dụ:

Link của 3 ví dụ trên:

http://tulieu.violet.vn/document/show/entry_id/1870924

http://tulieu.violet.vn/document/show/entry_id/1870930

http://tulieu.violet.vn/document/show/entry_id/1870933

Thứ Hai, 24 tháng 5, 2010

Tạo đồng hồ kim trong Flash



onClipEvent(enterFrame)
{
var tg=new Date();
gio._rotation=tg.getHours()*(360/12)+tg.getMinutes()*0.5;
phut._rotation=tg.getMinutes()*(360/60);
giay._rotation=tg.getSeconds()*(360/60)+tg.getMilliseconds()*6/1000;
}
Lý thuyết về hàm date()

Cách khác
Bài này sẽ hướng dẫn bạn cách tạo một chiếc đồng hồ hoạt động thực bằng cách sử dụng các hiệu ứng của Flash

1. Tạo một hình đòng hồ theo ý thích của bạn. Có thể vẽ nó trên Photoshop sau đó import nó vào flash hoặc vẽ trực tiếp trên flash. Bạn có thể lấy hình đồng hồ sau:

2. Tạo 5 layer trên phần Timeline, tên của chúng lần lượt tương ứng là: sec (giây), min (phút), hour (giờ) và actions. Bạn có thể xem hình dưới đây là Timeline mẫu.

3. Chèn vào thiết kế đồng hồ nền mà bạn đã tạo sẵn

4. Vẽ một đường kẻ dọc trong layer sec. Chọn dòng kẻ đó và nhấn F8 để chuyển nó sang dạng Symbol. Đặt tên cho Symbol này là sec_mc, chọn Movie clip và chọn ô vuông giữa dưới cùng trong phần Registration.

5. Nhấn OK

6. Trong layer sec, đặt sec_mc vào vị trí tương ứng so với ảnh nền đồng hồ bạn đã thiết kế. Đặt tên của layer sec trong phần Instance của cửa sổ thuộc tính Properties là “sec”.

7. Kéo sec_mc từ cửa sổ Library vào layer min. Nếu cửa sổ Library không mở, nhấn Ctrl + L. Giảm bớt chiều dài của sec_mc trong phần này đi (để tương ứng với kim phút). Đặt nó vào vị trí tương ứng với ảnh nền đồng hồ. Đặt tên layer này là “min” trong phần Instance của cửa sổ thuộc tính.

8. Tiếp tục kéo sec_mc vào layer hour từ cửa sổ Library đã mở. Lại giảm chiều dài của kim đi cho tương ứng với kim giờ. Đặt nó vào vị trí tương ứng so với ảnh nền đồng hồ. Đặt tên nó là “hour” trong ô Instance.

9. Chọn layer actions, vào phần Action Script (F9) và đưa vào đoạn mã sau:

time=new Date(); // time object
seconds = time.getSeconds()
minutes = time.getMinutes()
hours = time.getHours()

hours = hours + (minutes/60);

seconds = seconds*6; // calculating seconds
minutes = minutes*6; // calculating minutes
hours = hours*30; // calculating hours

sec._rotation=seconds; // giving rotation property
min._rotation=minutes; // giving rotation property
hour._rotation=hours; // giving rotation property

10. Vào frame thứ 2 của từng layer và nhấn phím F5.

Kết quả đồng hồ của bạn có chạy không, hãy thử nhấn Ctrl + Enter xem sao. Ngoài ra bạn có thể tự chế các kim sao cho phù hợp không nhất thiết là phải lấy kim từ sec_mc.

Mẫu đồng hồ


Đề mô


Tạo diễn hoạt viết chữ Thư pháp (Frame-By-Frame)



Đổi ngược Frames:
Chọn số Frames cần đổi chuột phải -> Reverse Frames

Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | 100 Web Hosting