Kết Hợp XML (eXtensible Markup Language) & MacroMedia FLASH 

Bài viết sử dụng font Unicode

Chào các bạn! chắc là các bạn đã nắm bắt & đã biết về XML thì sẽ thấy rằng đây là một ngôn ngữ số 1 hiện nay và ngay cả Microsoft, Sun, IBM, Oracles,... đều hỗ trợ XML và dùng nó trong mọi ứng dụng (bạn có thể tham khảo bài viết Sự bùng nổ XML!!!). Chính vậy, tôi cũng xin được phép hướng dẫn các bạn cách đưa XML vào Flash, hay nói đúng hơn là khi chạy trang web (HTML) sẽ load file Flash (.swf) và Flash sẽ load tiếp file .XML.

Ðiều đặc biệt ở đây là người xem có thể đánh dấu đoạn Text XML đã nhúng vào Flash (kề bên), click mouse phải chọn copy và dán vào Microsoft Word,... hoặc giả chỉnh sửa xong in ra cũng được,... Vậy chúng ta còn chờ gì nữa hãy bắt tay vào thiết kế đi ngay thôi!

Chạy chương trình MacroMedia Flash 5.0 bấm Ctrl + M chọn (550 x 400)px, màu nền thì tùy thích. Click mouse trái chọn Text Tool (T), click mouse trái vào vùng thiết kế gõ dòng chữ : "Vui lòng đợi trong chốc lát.", Click mouse trái vào dưới số 3 của thước bấm F5. Click mouse trái vào dưới số 4 của thước bấm F6, double click vào dòng chữ: "Vui lòng đợi trong chốc lát.", bạn hãy thêm 1 dấu chấm vào dòng chữ này (để người dùng có cảm giác rằng chương trình đang load thật sự), click mouse trái vào dưới số 5 của thước bấm F5. Click mouse trái vào dưới số 6 bấm F6, double click vào dòng chữ: "Vui lòng đợi trong chốc lát..", bạn hãy thêm 1 dấu chấm vào dòng chữ này, click mouse trái vào dưới số 7 của thước bấm F5. Click mouse trái vào dưới số 8 bấm F6, double click vào dòng chữ: "Vui lòng đợi trong chốc lát...", bạn hãy thêm 1 dấu chấm vào dòng chữ này, click mouse trái vào dưới số 9 của thước bấm F5, double click vào dòng chữ: "Vui lòng đợi trong chốc lát....", bạn hãy xóa đi 2 dấu chấm ở cuối dòng chữ này.

Click mouse phải vào Layer 1 chọn Insert Layer, bạn sẽ được Layer 2, hãy kéo Layer 2 này xuống dưới Layer 1 (như hình bên dưới). Click mouse trái vào dưới số 10 của thước ở Layer 2 bấm F6. Click mouse trái vào Text Tool (T) gõ vào dòng chữ: "Dữ liệu đã được nạp!". Tiếp theo click mouse trái vào Text Tool (T)infoMessage, sau đó Enter xuống dưới tạo thành 1 hình chữ nhật như bên dưới, mở Text Options vào Variable gõ: infoMessage.

- Click mouse phải vào Layer 1 chọn Insert Layer, bạn sẽ được Layer 3, click mouse trái vào số 2 của thước ở Layer 3 bấm F6, mở Frame Actions gõ đoạn code sau:

    // ----------------------------------------------------------------------------
    // Include the ActionScript file that contains the LoadXML
    // Class definitions.
    // ----------------------------------------------------------------------------
#include "nap_xml.as"
   
// ----------------------------------------------------------------------------
    // Hàm: onDataLoaded()
    // Mục đích: Ðược gọi bởi đối tượng LoadXML, khi dữ liệu
    // XML cho phép kết thúc việc nạp.
    // ----------------------------------------------------------------------------
function onDataLoaded (oXMLLoader) {
if ("" == oXMLLoader.errorMsg) {
myObject = oXMLLoader.object;

 
    // --- Chú ý: if you want to see a trace of the object after
    // --- it has been constructed from the XML, then
    // --- unremark the following line of code...
    //
    // dumpObject(oXMLLoader.object, 0, 'oXMLLoader.object');
    // 
} else {
trace ('error loading data: '+oXMLLoader.errorMsg);
}
dataLoaded = true;
}
 
    // ----------------------------------------------------------------------------
    // Bắt đầu tải dữ liệu XML như một sự phân cấp đối tượng ActionScript.
    // ----------------------------------------------------------------------------
    // --- chạy 1 biến mà biến đó sẽ được kiểm tra bởi việc nạp movie này.
dataLoaded = false;
   
// --- Use the LoadXML object to get XML data into a JavaScript Object ---
var oXMLLoader = new LoadXML();
oXMLLoader.onLoad = onDataLoaded;
oXMLLoader.getFrom("text.xml");

* Lưu ý: 

- Dấu //: là chú thích không liên quan đến những câu lệnh (có thể bỏ đi)

- nap_xml.as: bạn có thể download cuối bài viết này.

- test.xml: bạn sẽ tạo sau (bạn nên tham khảo bài viết "Sự Bùng Nổ XML!!!" để hiểu thêm về XML).

- Nếu bạn đặt tệp "text.xml" ở web site của bạn thì hãy gõ vào ví dụ như sau: http://www.crosswinds.net/~lqahung/flash5/xml/text.xml

Click mouse trái vào số 9 của thước ở Layer 3 bấm F6, mở Frame Actions gõ đoạn code sau:

    // Nếu dữ liệu hoặc Movie đã nạp không đầy đủ, thì quay trở lại trong ("loaderStart")
    // 
if (!dataLoaded || _framesloaded<_totalframes) {
gotoAndPlay ("loaderStart");
}

    // -------------------
    // Những lưu ý:
    // The ActionScript in frame 2 will automatically
    // set a variable called "dataLoaded" that will
    // have a value of (true) when the XML data finishes
    // being loaded.
    // ---------------------

Click mouse trái vào số 10 của thước ở Layer 3 bấm F6, mở Frame Actions gõ đoạn code sau:

infoMessage = myObject.myData.message[0]._value;
stop();

Click mouse phải vào Layer 3 chọn Insert Layer bạn sẽ được Layer 4, click mouse trái vào số 1 của thước bấm F6, bấm Ctrl + F, ở Label gõ: startup, click mouse trái vào số 2 của thước bấm F6, bấm Ctrl + F, ở Label gõ: loadData, click mouse trái vào số 3 của thước bấm F6, bấm Ctrl + F, ở Label gõ: loaderStart, click mouse trái vào số 9 của thước bấm F6, bấm Ctrl + F, ở Label gõ: loaderCheck, click mouse trái vào số 10 của thước bấm F6, bấm Ctrl + F, ở Label gõ: loaderFinished.

Vậy là xong bạn có thể lưu lại đặt tên là xml.swf cùng một nơi với file nap_xml.as text.xml

- Sau cùng là tạo file XML (bạn nên tham khảo bài viết "Sự Bùng Nổ XML!!!"), mở Notepad copy đoạn code bên dưới và dán vào Notepad và lưu vào chung với file Flash, đặt tên cho nó là text.xml.

<myData><message type="text"><![CDATA[Qua^n ddo^.i My~ dda~ co' ma(.t o+? bie^n gio+'i Afghanistan
To+` Sunday Times ho^m nay (23/9) ddu+a tin, ca'c ddo+n vi. tie^n phong 
thuo^.c lu+.c lu+o+.ng Li'nh du` 82 va` Ta^'n co^ng tre^n kho^ng 101 
cu?a Lu.c qua^n My~ dda~ to+'i ca'c ca(n cu+' o+? Pakistan, ga^`n hai 
tha`nh pho^' Quetta va` Peshawa gia'p ranh vo+'i Afghanistan. 
Ho+n the^', qua^n dda(.c nhie^.m SAS cu?a Anh dda~ co' ma(.t o+? 
Ba('c Afghanistan. Mo^.t quan chu+'c La^`u Na(m Go'c tuye^n bo^' 
gio+'i qua^n su+. sa(~n sa`ng u+'ng chie^'n, 
"chi? ca^`n To^?ng tho^'ng nha^'n nu't".]]></message>
<message type="text">Welcome to Le Hung</message></myData>

- Nếu bạn muốn bỏ dấu Tiếng Việt trong XML, vui lòng đọc bài viết "Sự bùng nổ XML!!!"

- Sau cùng là nhúng đoạn code sau vào trang web của bạn (trang .html) nằm chung với các file vừa tạo:

<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0"
WIDTH=500 HEIGHT=400>
<PARAM NAME=movie VALUE="xml.swf"> <PARAM NAME=menu VALUE=false> <PARAM NAME=quality VALUE=high> <PARAM > <EMBED src="xml.swf" menu=false quality=high WIDTH=500 HEIGHT=400 TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"></EMBED>
</OBJECT>

Download file: nap_xml.as (bạn hãy nghiên cứu đoạn code chứa trong file này thử xem?)

Vui lòng góp ý về bài viết này xin liên hệ:

Lê Quang Anh Hu'ng 

135T3 Tran Van Dang Street, District 3, Ho Chi Minh City, Vietnam.

E-Mail: lehunghp@yahoo.com hoặc ahung@hcmpt.vnn.vn  (khi gửi mail vui lòng đừng bỏ dấu Tiếng Việt)

Homepage: http://www.crosswinds.net/~lqahung/

Chúc Bạn & Gia Đình nhiều sức khỏe.


PcLeHoan 1996 - 2002
Mirror : http://www.pclehoan.com
Mirror : http://www.lehoanpc.net

Mirror : http://www.ktlehoan.com