Lập trình tuần tự trong ECMAScript

Một phần của tài liệu Tìm hiểu ngôn ngữ VRML (Trang 25 - 27)

I. Gớới thiệu về VRML

3.Lập trình tuần tự trong ECMAScript

ECMAScript là một ngôn ngữ lập trình tuần tự. Nó không giống với VRML, một ngôn ngữ có nhiều khai báo hơn. VRML khai báo các vật thể với các thuộc tính khác nhau,và khi các vật thể này đợc lắp ráp với nhau sẽ tạo nên thế giới mô phỏng

Chơng trình ECMAScript là một dãy tuần tự các câu lệnh mà chúng đợc thực thi chỉ một lần để tạo ra kết quả mong muốn. .Các kháI niệm của ECMAScript nh biến, biểu thức,

vòng lặp, hàm…rất giông với các ngôn ngữ kịch bản khác, vậy tôi không đề cập chi tiết ở đây .Chỉ cần chú ý ở phần sau:Các đối tợng trong ECMAScript .

VRML Objects

Nếu bạn muốn tạo ra scripts bằng VRML bạn sẽ cần sử dụng đối tợng ECMAScript. Đó là các đối tợng đợc gắn liền bên trong trình duyệt của bạn, trình duyệt có sẵn một số thuộc tính, hàm khởi tạo và phơng thức mà có thể bạn sẽ thấy rất có ích. Ví dụ, đối tợng SFVec3f có một số phép xử lý hình học mà bạn có thể sử dụng chẳng hạn nh chiều dài, điểm, giao điểm vv..

Hầu hết các kiểu dữ liệu cơ bản VRML có tơng ứng trong ECMAScript, vì thế giá trị SFVec3f trong VRML là tơng ứng với đối tợng SFVec3f trong ECMAScript. Tuy nhiên, những kiểu đợc ánh xạ trực tiếp từ các kiểu của ECMAScript : SFFloat, SFInt32 và SFTime tất cả đều ánh xạ đến dữ liệu kiểu số.

SFBool ánh xạ trực tiếp tới kiểu boolean. Bạn có thể sử dụng giá trị true và false

trong ECMAScript cũng giống nh giá trị TRUE và FALSE trong VRML.

Tất cả các kiểu dữ liệu khác trong VRML đều ánh xạ tới các đối tợng của ECMAScript, chẳng hạn nh SFVec3f, SFColor, MFNode vv..

Cũng nh các kiểu chuẩn, các cặp đối tợng đợc cung cấp trong các trình duyệt. Đó là các đối tợng trình duyệt (Browser object), nó có thể đợc sử dụng để lấy thông tin từ trình duyệt, và đối tợng VrmlMatrix là một ma trận 4x4 sử dụng trong hình học 3 chiều. Nếu bạn cần sử dụng đối tợng này bạn sẽ cần có kiến thức khá vững về hình học 3 chiều, lúc đó thì mới có thể sử dụng đối tợng này một cách hiệu quả.

Các đối tợng SFxxx thì khác hẳn và chúng có các hàm của chính mình và các chức năng tơng ứng với từng kiểu cụ thể. Bởi vì chúng khác nhau nên tôi sẽ không đề cập đến ở đây. Để có thông tin về cách làm việc của từng kiểu tôi khuyên các bạn nên tham khảo trong phụ lục C. ở đó có đầy đủ , chi tiết về các kiểu và hớng dẫn cách bạn có thể sử dụng chúng.

Tôi sẽ chỉ nói về các kiểu MFxxx mặc dù chúng rất đơn giản. Đó là các mảng tơng ứng với kiểu SF và có rất ít các hàm. Chúng chỉ có một thuộc tính đó là length, đó là số các thành phần trong danh sách hiện tại. Chúng có một phơng thức, toString(). Chúng cũng chỉ có một hàm khởi tạo, chúng sẽ lấy danh sách các đối tợng SF đặt vào trong đối tợng MF mới. Chúng có thể không có phần tử nào nếu bạn muốn tạo một mảng rỗng. Bạn có thể truy cập vào các đối tợng SF bên trong đối tợng MF theo cách giống nh truy cập vào mảng bất kỳ, bằng cách sử dụng chỉ số đặt bên trong dấu ngoặc vuông. Vì thế,

vectors[0] đa ra phần tử đầu tiên của đối tợng vector MFVec3f ,vectors[7] đa ra phần tử

thứ bẩy của đối tợng vector MFVec3f. Nếu bạn muốn ghi vào đối tợng SF trong đối tợng MF, bạn có thể dùng cách sau :

var vectors = new MFVec3f(); vectors[5] = new SFVec3f(0,1,0);

gán một đối tợng mới SFVec3f(0,1,0) vào thành phần tử thứ 6 trong vector. Nếu bạn ghi vào vị trí vợt qua vị trí cuối cùng của mảng thì đối tợng sẽ mở rộng ra, cho phép bạn có thể ghi vào đó. Vì thế bạn có thể tạo mảng rỗng ở trên và sau đó ghi vào bất cứ phần tử nào của mảng mà bạn muốn.

Một phần của tài liệu Tìm hiểu ngôn ngữ VRML (Trang 25 - 27)