3 Bài toán
3.3.1 Cấu trúc dữ liệu lưu trữ đối tượng hiển thị
Display List là một thành phần trong Gnash để tổ chức tất cả các phần tử đồ họa( gồm MovieClips, text, Jpgs. . . ) và hiển thị chúng trên màn hình. Nói cách khác,Display Listlà một cấu trúc dữ liệu dùng để tổ chức các phần tử đồ họa và sau đó hiển thị lên trên màn hình. Nguyên tắc của cấu trúc dữ liệu này là tuân theo mô hình mỗi MovieClips sẽ có một độ sâu nhất định với MovieClips khác.
CHƯƠNG3: BÀI TOÁN
Kiến trúc của bất cứ chương trình thực thi tệp tin Flash nào cũng phải chứa Dis- playList, đây là một cấu trúc dạng cây với mỗi giai đoạn(Stage) nó cần thực thi là gốc và nhánh là DisplayObjectContainers, cuối cùng DisplayObjects là nút lá( hình vẽ 3.1).
Stage là một thành phần cơ sở để chứa những thành phần DisplayObjects và với mỗi trạng thái( hoặc frame- khung) tồn tại duy nhất một Stage. Trong Gnash, Stage tương ứng với lớp movie_root, một thành phần tồn tại và được định nghĩa trong tệp tin Flash nhị phân(SWF) và được chương trình thực thi phân tích từ tệp tin này.Stagechứa tất cả các thành phần mà bạn có thể nhìn thấy từ tệp tin Flash của bạn, nó chứa mọi thứ hoặc nó chứa một thành phần được tham chiếu bởi một thành phần khác trong Flash. Stage là một thành phần của DisplayList và được thể hiện lên màn hình ở mỗi Frame.
DisplayObjectContainer là một bộ chứaDisplayObjecs. Trong Gnash,MovieClip
là lớp có chức năng tương tự- Chứa đựng chỉ những phần tử đồ họa và những hành vi giống như quản lý về độ sâu, gắn với những đối tượng khác.
Tất cả những thành phẩn ẩn( hoặc chưa được định nghĩa), từ những trường văn bản tới những bức ảnh hoặc hình vẽ, và nhữngstage, đều được mở rộng từ lớp DisplayObject. Tất cả các dạng của DisplayObjects có cùng thuộc tính nhưx, y, visible. . . và mỗi lớp con lại chứa những đặc tính riêng cho đối tượng của nó. DisplayObject là thành phần đại diện cho tất cả những đối tượng đồ họa được sử dụng trong Flash.
Hình 3.1: Cấu trúc của DisplayList
Sử dụng danh sách hiển thị dạng cây, con trỏ của đối tượng sẽ đi qua mọi phần tử trongDisplayObjectContainer với mỗi trạng thái tương ứng và vẽ nó.
CHƯƠNG3: BÀI TOÁN