Hướng dẫn sử dụng Macromedia Flash mx


Bài 8: Thuộc tính của thể hiện



tải về 0.86 Mb.
trang5/27
Chuyển đổi dữ liệu02.09.2017
Kích0.86 Mb.
#32845
1   2   3   4   5   6   7   8   9   ...   27

Bài 8: Thuộc tính của thể hiện



Khi chơi đùa với những quả banh (các thể hiện của nhân vật Ball), bạn đã biết đến các biến có sẵn bên trong từng quả banh, cho biết trạng thái của quả banh: _x, _y, _xscale, _yscale, _visible. Các biến như vậy gọi là các thuộc tính (property) của thể hiện. Không giống như biến do bạn tự tạo ra (như biến step cho quả banh màu đỏ), khi bạn thay đổi một thuộc tính của thể hiện nào, trạng thái của thể hiện đó tự động thay đổi. Chẳng hạn, khi gán trị false cho biến _visible của quả banh, quả banh lập tức biến mất.

Để tìm hiểu thêm các thuộc tính khác của thể hiện, bạn nên tạo nhân vật mới. Lần này ta vẽ hình vuông để "thay đổi không khí". Trước hết, bạn bấm kép vào tên lớp Layer 2 trong bảng Timeline, gõ Balls, rồi gõ Enter. Làm như vậy để đổi tên lớp thành Balls, ngụ ý rằng lớp đang xét là lớp dành cho các quả banh. Bạn hãy tạo lớp mới dành cho các hình vuông. Bạn bấm nút "tạo lớp mới"  (góc dưới, bên trái bảng Timeline), bấm kép vào tên lớp mới Layer 3 và gõ Squares. Để tập trung chú ý vào các hình vuông sắp tạo ra, bạn cho các quả banh biến mất bằng cách bấm vào dấu chấm của hàng biểu thị lớp Balls trong bảng Timeline, ở cột có hình con mắt . Các quả banh chỉ được giấu đi để đỡ vướng víu cho bạn khi làm việc, chúng vẫn "góp mặt" bình thường khi bạn chạy chương trình. Bạn vẽ hình vuông bằng cách chọn công cụ Rectangle  ở hộp công cụ, trỏ vào đâu đó trên sân khấu, giữ phím Shift và giữ phím trái của chuột, kéo chuột qua phải, xuống dưới. Nhờ bạn giữ phím Shift, hình khung được vẽ ra là hình vuông. Bạn nên tô màu cho hình vuông khác với các quả banh, màu xanh lá chẳng hạn (hình 1).



Bạn bấm vào công cụ chọn , bấm vào hình vuông xanh lá để chọn và gõ phím F8 để chuyển hình được chọn thành nhân vật. Hộp thoại Convert to Symbol hiện ra. Bạn gõ Square để đặt tên cho nhân vật mới (hình 2). Ở phần Registration trong hộp thoại, bạn thấy điểm mốc nằm ở tâm nhân vật theo mặc định. Không cần thay đổi điểm mốc, bạn gõ Enter. Hình vuông vừa vẽ tạo nên nhân vật Square. Hình vuông trên sân khấu trở thành thể hiện của nhân vật Square.



Hình vuông xanh lá đang ở tình trạng "được chọn". Bạn gõ phím F9 để mở bảng Actions, viết hai hàm xử lý tình huống cho hình vuông được chọn như sau:

onClipEvent(load) {

  step = 10;

}

onClipEvent(enterFrame) {



  _rotation += step;

}

Trong đó, hàm xử lý tình huống khởi động tạo ra biến step chứa trị số 10, hàm xử lý tình huống chuyển khung cộng biến step vào thuộc tính _rotation của hình vuông. Nhờ vậy, mỗi lần chuyển khung, góc quay của hình vuông lại tăng thêm 10. Bạn chú ý, biến step ta dùng ở đây không phải là biến step đã được dùng cho quả banh màu đỏ. Hai biến step tuy cùng tên nhưng có phạm vi (scope) khác nhau, không có "dây mơ rễ má" gì hết. Ấn Ctrl+Enter để chạy chương trình, bạn thấy hình vuông quay đều do góc quay của nó "tà tà" tăng lên mỗi lần chuyển khung. "Nếu cứ để hình vuông quay hoài hoài, lẽ nào góc quay sẽ tăng đến... vô cùng?". Bạn yên tâm, thực ra góc quay của hình vuông chỉ có thể nhận các trị số từ -180 đến 180 (tính bằng độ). Flash tự động điều chỉnh trị được gán cho biến _rotation để có trị thích hợp trong khoảng đó. Để kiểm tra, bạn có thể ghi câu lệnh theo dõi trace("Góc quay: " + _rotation); sau câu lệnh _rotation += step; trong hàm OnClipEvent(enterFrame). Bằng cách dùng hàm trace như vậy, khi chạy chương trình, bạn sẽ thấy dòng thông báo đại loại như thế này: Góc quay: 120. Đó là nhờ chuỗi "Góc quay: " được ghép với trị số của biến _rotation bằng dấu cộng. Nếu không muốn có quá nhiều thông báo ở bảng Output khi chạy chương trình, bạn thêm dấu // trước câu lệnh gọi hàm trace: //trace("Góc quay: " + _rotation); Flash hiểu rằng những gì được ghi sau dấu // trên một dòng là phần chú thích, không cần xét đến khi biên dịch. Do vậy, đặt dấu // trước một câu lệnh giúp bạn tạm thời vô hiệu hóa câu lệnh đó. Khi muốn khôi phục hiệu lực của câu lệnh, bạn chỉ cần xóa dấu // trước câu lệnh. Bạn hãy nhuộm màu tím cho hình vuông hiện có, gõ phím F11 để mở bảng Library và kéo hình vuông xanh lá từ thư viện vào sân khấu, tạo thêm một thể hiện nữa của nhân vật Square (hình 3). Trong bảng Actions, bạn viết hàm xử lý tình huống như sau cho hình vuông xanh lá:



onClipEvent(mouseMove) {

  trace("_xmouse: " + _xmouse);

  trace("_ymouse: " + _ymouse);

  trace("_alpha: " + _alpha);

  _alpha -= 1;

}

Bạn chạy chương trình để thử đoán nhận ý nghĩa của những thuộc tính mà bạn chưa biết. Bạn sẽ có "đáp án" vào kỳ sau.





Bài 9: Nhân vật phức hợp



Trong hàm xử lý tình huống onClipEvent(mouseMove) của hình vuông xanh lá, bạn đã dùng các thuộc tính _xmouse, _ymouse và _alpha. Hai thuộc tính _xmouse và _ymouse của hình vuông xanh lá cho biết tọa độ của con trỏ chuột so với điểm mốc của hình vuông đó (trong trường hợp đang xét, điểm mốc nằm tại tâm hình vuông). Thuộc tính _alpha cho biết độ đục của hình vuông. Khi độ đục bằng 0 hoặc nhỏ hơn 0, hình vuông trở nên trong suốt.

Vào lúc chạy chương trình, hàm onClipEvent(mouseMove) được gọi mỗi khi con trỏ chuột "nhúc nhích". Với các câu lệnh đã viết bên trong hàm đó, khi bạn đẩy chuột, thông báo về vị trí của con trỏ chuột và độ đục liên tục hiện ra trong bảng Output, đồng thời độ đục giảm dần. Chỉ cần đẩy chuột đôi chút, bạn làm cho hình vuông nhợt nhạt rồi biến mất (hình vuông trở nên... "vô hình"). Có lẽ bạn đang muốn làm gì đó "thực tế" hơn trò "nhảm nhí" nêu trên. Ta có thể thực hiện ngay một việc "có lý": hình vuông tự nhảy đến vị trí của con trỏ chuột mỗi khi bấm chuột. Bạn hãy ghi dấu /* trước hàm onClipEvent(mouseMove) và ghi dấu */ sau hàm đó và gõ hàm mới onClipEvent(mouseUp):

/*

onClipEvent(mouseMove) {



  trace("_xmouse: " + _xmouse);

  trace("_ymouse: " + _ymouse);

  trace("_alpha: " + _alpha);

  _alpha -= 1;

}

*/

onClipEvent(mouseUp) {



  _x = _root._xmouse;

  _y = _root._ymouse;



}

Đoạn mã nằm trong hai dấu /* và */ bị mất hiệu lực vì Flash hiểu rằng nội dung được gói ghém bởi hai dấu /* và */ là phần chú thích của chương trình. Khi chỉ cần viết một dòng chú thích, bạn dùng dấu // đầu dòng. Muốn viết một đoạn chú thích gồm nhiều dòng, bạn phải mở đầu bằng dấu /* và kết thúc bằng dấu */. Hàm onClipEvent(mouseUp) được gọi mỗi khi bạn buông phím chuột (nếu đã nhấn phím chuột trước đó). Bên trong hàm onClipEvent(mouseUp), ta gán tọa độ của con trỏ chuột cho tọa độ của hình vuông (nói rõ hơn, tọa độ của điểm mốc của hình vuông). Bạn chú ý, ta không dùng hai thuộc tính _xmouse và _ymouse của hình vuông. Khi viết _root._xmouse và _root._ymouse, bạn đã dùng hai thuộc tính _xmouse và _ymouse của sân khấu để đọc tọa độ của con trỏ chuột so với sân khấu. Khi lập trình cho nhân vật hoặc thể hiện bất kỳ, bạn luôn có thể dùng biến _root để tìm về sân khấu, nơi chứa đựng nhiều thông tin liên quan đến toàn bộ hoạt cảnh. Do biến _root có vai trò "dẫn đường" như vậy, người ta gọi đó là một tham chiếu (reference). Khi chạy chương trình, thử bấm chuột đó đây, bạn thấy hình vuông xanh lá nhảy phóc đến vị trí con trỏ chuột đúng như dự định. Do "sân khấu tạp kỹ" của ta trở nên đông đúc, để dễ dàng quan sát hai hình vuông, bạn có thể cho các quả banh "nghỉ việc". Muốn vậy, sau khi dừng chương trình, bạn bấm-phải vào lớp Balls ở bảng Timeline, chọn Guide trên trình đơn vừa hiện ra. Làm như vậy, Flash hiểu rằng lớp Balls chỉ là lớp hướng dẫn (guide layer), không tham gia vào hoạt cảnh. Khi biên dịch chương trình, Flash hoàn toàn bỏ qua lớp hướng dẫn. Lớp hướng dẫn thường dùng để chứa những hình mà bạn tìm được ở đâu đó và cần vẽ lại trong Flash. Với nhân vật đã có, bạn có thể vẽ vời thêm hoặc chỉnh sửa hình dạng của nó nếu cần. Để chỉnh sửa nhân vật Square, bạn gõ phím F11 để mở bảng Library, bấm-phải vào dòng Square trong danh sách nhân vật, chọn mục Edit (hoặc bấm kép vào đầu dòng Square trong danh sách) để chuyển qua chế độ chỉnh sửa cho riêng nhân vật Square. Bạn hãy chỉnh sửa nhân vật Square theo cách đơn giản: chọn nhân vật Ball trong danh sách, kéo quả banh trong khung phía trên danh sách, đặt ngay trên hình vuông trong khung lớn ở giữa (hình 1). Làm như vậy, nhân vật Square có thêm một bộ phận mới là nhân vật Ball. Nhân vật Square trở thành nhân vật phức hợp, chứa đựng bên trong nó một nhân vật khác. Bấm vào mục Scene 1  phía trên bảng Timeline để thoát khỏi chế độ chỉnh sửa nhân vật Square, trở về với sân khấu, bạn thấy hai thể hiện của nhân vật Square giờ đây đều bao gồm một hình vuông và một hình tròn. Lúc chạy chương trình, hai thể hiện của nhân vật Square vẫn có hành vi như trước, chỉ khác ở chỗ có thêm quả banh liên tục "phập phồng" (hình 2). Nhân vật Ball trở thành một bộ phận của nhân vật Square nhưng không hề quên đi "bản năng" của nó.






Каталог: files -> 2012
files -> PHỤ LỤC 2 TỔng hợp danh mục tài liệu tham khảO
files -> BÁo cáo quy hoạch vùng sản xuất vải an toàn tỉnh bắc giang đẾn năM 2020 (Thuộc dự án nâng cao chất lượng, an toàn sản phẩm nông nghiệp và phát triển chương trình khí sinh học ) Cơ quan chủ trì
files -> BỘ TÀi nguyên và MÔi trưỜng
files -> 1. Mục tiêu đào tạo: Mục tiêu chung
2012 -> Số Hồ sơ: 50 / /cs-bhyt cộng hòa xã HỘi chủ nghĩa việt nam
2012 -> HÌnh ảnh thao tác dữ liệu máy toàN ĐẠc nts 310 CỦa hãng south
2012 -> Khóa học 2010 -2012 (TT10C/1) (Ban hành theo quyết định số /QĐ-bgh ngày …tháng…năm của Hiệu trưởng trường Đại học Hoa Sen)
2012 -> Thông báo về việc xét thông qua đề tài luận văn và người hướng dẫn cho hvch k56

tải về 0.86 Mb.

Chia sẻ với bạn bè của bạn:
1   2   3   4   5   6   7   8   9   ...   27




Cơ sở dữ liệu được bảo vệ bởi bản quyền ©hocday.com 2024
được sử dụng cho việc quản lý

    Quê hương