Bạn muốn có một đoạn flash sẽ hiển thị khác nhau tùy vào từng trang HTML khác nhau, VD hiển thị câu chào cho từng người,…Ta cần lấy giá trị từ HTML vào Flash.
Để lấy giá trị từ HTML vào Flash, có rất nhiều cách, tôi bàn đến cách đơn giản nhất là dùng tham số FlashVars trong Thẻ <object> để truyền giá trị và dùng ActionScript trong flash để đọc giá trị
Đưa giá trị bằng FlashVars
<OBJECT classid=”clsid:D27CDB6E-AE6D-11cf-96B8-444553540000″
codebase=””http://macromedia.com/cabs/swflash.cab#version=6,0,0,0″”
WIDTH=”250″ HEIGHT=”250″ id=”flaMovie1″ ALIGN=”CENTER”>…
<param name=”flashvars” value=”textdisplayvalue=Hello%20Trieu%20Phu
“>
…
<embed src=”flaMovie1.swf” FlashVars=“textdisplayvalue=
Hello%20Trieu%20Phu” quality=”high” bgcolor=”#FFFFFF” WIDTH=”250″ HEIGHT=”250″ NAME=”flaMovie1″ TYPE=”application/x-shockwave-flash”>
</OBJECT>
(Netscape chỉ hiểu embed, IE thì chỉ hiểu param trong Object, vì vậy ta cần làm cả 2 thẻ này)
Đọc FlashVars bằng ActionScript
Với ActionScript 1,2, khi Flash Movies được tải lên, nó sẽ có 1 biến tên là textdisplayvalue trong _root. Vì vậy, có thể sử dụng biến này trong _root.textdisplayvalue vào mọi việc trong movie. Cấu trúc:
//Tạo 1 text1 và gán giá trị cho nó trực tiếp từ biến textdisplayvalue trong flashVars
text1.text = textdisplayvalue;
Với ActionScript 3 thì sử dụng cấu trúc
//Lấy biến từ textdisplayvalue
var paramObj:Object = LoaderInfo(this.root.loaderInfo).parameters.textdisplayvalue ;
//Tạo 1 text1 và gán giá trị cho nó dùng method to.String()
text1.text = paramObj.toString()
Xem thêm tại http://helpx.adobe.com/flash/kb/pass-variables-swfs-flashvars.html