Tối ưu hóa hoạt hình hệ thống hạt Flash CS3
Bây giờ chúng ta có FlashR Hoạt hình tuyết rơi của hệ thống hạt CS3 hoạt động chính xác như chúng ta muốn, đã đến lúc tối ưu hóa mã chương trình cảnh tuyết. Nếu bạn đã kiểm tra hoạt hình mà chúng tôi đã viết trong các hướng dẫn trước, bạn có thể nhận thấy rằng sau một thời gian, hoạt hình có xu hướng làm nhiệm vụ tài nguyên máy tính của bạn. Trong hướng dẫn này, chúng tôi sẽ xem xét một vài cách để làm cho hình ảnh động hiệu quả hơn.

Hiện tại, mã đang sử dụng một Trình lắng nghe sự kiện để lắng nghe từng khung hình mới của hình ảnh động. Với mỗi khung hình mới, chức năng bông tuyết (xử lý sự kiện) tạo ra một bông tuyết mới và thêm bông tuyết đó vào danh sách hiển thị Flash. Tiếp theo, chúng tôi sử dụng Math.random () để chọn ngẫu nhiên vị trí và thuộc tính alpha của bông tuyết này. Chúng tôi sử dụng Trình lắng nghe sự kiện thứ hai để gọi chức năng tuyết rơi, một lần nữa với mỗi khung hình mới. Chức năng tuyết rơi kiểm tra xem bông tuyết đã di chuyển vượt ra khỏi cạnh phải hay dưới cùng của sân khấu. Nếu vậy, chúng tôi loại bỏ Trình lắng nghe sự kiện thứ hai lặp lại chức năng tuyết rơi. Điều này khiến một bông tuyết ngừng rơi, trong khi những bông tuyết khác tiếp tục rơi. Sự lặp lại của chức năng bông tuyết tạo ra hình ảnh động tuyết rơi. Điều chúng ta cần làm bây giờ là thay đổi mã để nó hiệu quả hơn.

Phương pháp một

Phương thức đầu tiên yêu cầu chỉ thêm một dòng mã vào chương trình của chúng tôi. Chúng ta đã có một tuyên bố có điều kiện bên trong chức năng tuyết rơi để kiểm tra xem bông tuyết có vượt ra khỏi sân khấu hay không, và nếu vậy, sẽ loại bỏ Trình lắng nghe sự kiện và ngăn bông tuyết rơi xuống.
Bông tuyết ngừng di chuyển nhưng nó vẫn được nhìn thấy ở dưới cùng của sân khấu. Vì vẫn hiển thị và vẫn nằm trong danh sách hiển thị, Flash vẫn dành tài nguyên cho bông tuyết này. Nếu chúng ta loại bỏ bông tuyết khỏi danh sách hiển thị, nó sẽ giải phóng tài nguyên và hoạt ảnh sẽ hiệu quả hơn. Để loại bỏ những bông tuyết mà chúng ta không còn cần trong danh sách hiển thị, chúng ta có thể thêm mã removeChild vào câu lệnh điều kiện.

if (_Snowflower.y> 370 || _Snowflower.x> 550)
{
giai đoạn.removeEventListener (Event.ENTER_FRAME, tuyết rơi);
removeChild (_Snowflower);
}
khác
{_Snowflower.y + = 5; _Snowflower.x + = Math.random () * 10; }


Khi bạn kiểm tra bộ phim của mình, những bông tuyết biến mất khi chúng đến cạnh phải hoặc dưới cùng của sân khấu và hoạt hình hiệu quả hơn.

Tiếp theo →

Bản quyền 2018 Adobe Systems Incorporated. Đã đăng ký Bản quyền. (Các) ảnh chụp màn hình sản phẩm Adobe được in lại với sự cho phép của Adobe Systems Incorporated. Adobe, Photoshop, Album Photoshop, Photoshop Elements, Illustrator, InDesign, GoLive, Acrobat, Cue, Premiere Pro, Premiere Elements, Bridge, After Effects, InCopy, Dreamweaver, Flash, ActionScript, Fireworks, Đóng góp, Cap activate, Flash Catalyst và Flash Paper là / là [a] nhãn hiệu đã đăng ký [s] hoặc nhãn hiệu [s] của Adobe Systems Incorporated tại Hoa Kỳ và / hoặc các quốc gia khác.