Macromedia Flash MX Kết Hợp Với XML Tạo Đồ Thị Dạng Cột
| Trang 1 | Trang 2 |
Sau đó mở menu Insert chọn Create Motion Tween, tiếp theo click mouse trái vào chữ "load", nhìn vào bảng Properties đang để Graphic chọn Movie Clip, click mouse trái vào <Instance Name> gõ vào so_dothi, click mouse trái bấm Ctrl + X (Cut), sau đó bấm Ctrl + F6 chuyễn sang Document đang thiết kế bấm Ctrl + V (dán) vào Layer 2 (Nằm bên ngoài vùng thiết kế), tiếp tục click mouse trái vào Keyframes 15 của Layer 2 bấm F5, bạn hãy làm theo như hình bên dưới:

Sau đó bạn hãy click mouse phải vào Layer 2 của TimeLine chọn Insert Layer, bạn sẽ được Layer 3, kéo Layer 3 này xuống dưới Layer 2, click mouse trái vào Keyframe 1, mở menu Windows chọn Actions (F9) để mở bảng "Actions – Frame" ra, nếu đã mở rồi thì thôi, nếu bấm F9 nó sẽ đóng lại đó! Click mouse trái vào biểu tượng bên phải của "Actions-Frame" sẽ xuất hiện menu mở ra chọn "Expert Mode"

Sau đó chèn đoạn code sau vào:
//Bắt đầu
nugraf = 1; // xuất hiện cột thứ 1, nếu cho = 10 sẽ xuất
hiện từ cột 10 trở đi.
laag = 1;
urlXML = new XML();
urlXML.onLoad = bewerkXML;
urlXML.load("sodothi.xml") // bạn phải đặt file XML là sodothi.xml
function bewerkXML()
{
hoeveel = 0;
hoofdtag = new XML;
elementtag = new XML;
so_bieuthi_XML = new Array;
hoofdtag = this.firstChild.nextSibling;
if (hoofdtag.nodeName.toLowerCase() == "do_thi")
{
so_bieuthi_XML = hoofdtag.childNodes;
aantalgraf = so_bieuthi_XML.length;
aantalgraf = (aantalgraf-1)/2;
}
}
// Kết thúc
Sau khi đã dán đoạn code trên vào "Actions-Frame" bạn hãy bấm F6, click mouse trái vào Keyframes 6, bấm F6 đồng thời mở bảng "Actions-Frame" copy đoạn code bên dưới dán vào bảng "Actions-Frame":
//
Bắt đầu
nugrafz = (nugraf * 2) - 1;
waarde = so_bieuthi_XML[nugrafz].firstChild.nodeValue;
doordoen = 0;
// Kết thúc
Sau khi đã dán đoạn code trên xong, tiếp tục bấm F6, đồng thời click mouse trái vào Keyframes 11 bấm F6, mở bảng "Actions-Frame" copy đoạn code bên dưới dán vào bảng "Actions-Frame":
// Bắt đầu
do {
bthi = "bieu_thid" add laag add doordoen add nugraf;
bieu_thi = "bieu_thi" add nugraf;
doordoen2 = ((nugraf*10)+3) add doordoen;
duplicateMovieClip ( bieu_thi, bthi, doordoen2);
doordoen++;
} while (doordoen < waarde);
zet = 0;
// Kết thúc
Sau khi đã dán đoạn code trên xong, tiếp tục bấm F6, lúc này tự nó sẽ nhảy sang Keyframes 12, bảng "Actions-Frame" copy đoạn code bên dưới dán vào bảng "Actions-Frame":
// Bắt đầu
if (zet <= waarde) {
gotoAndPlay (13);
}
else
{
gotoAndPlay (15);
}
// Kết thúc
Tiếp tục bấm F6, lúc này tự nó sẽ nhảy sang Keyframes 13, bảng "Actions-Frame" copy đoạn code bên dưới dán vào bảng "Actions-Frame":
// Bắt đầu
bthinu = "bieu_thid" add laag add zet add nugraf;
bbb = 750; //Do lon cua tu'`ng mieng ma`u (do thi)
tt = 1.8; //Do khi'ch cua do thi (so^' ca`ng lon se~ ca`ng khi'ch)
ggg = 5; // Do gian ra cua do^` thi (co^.t). (ne^'u la` 4 se~ tha`nh co^.t ma`u
chu kho^ng tha^'y class)
zet2 = ggg*zet;
xschaal = bbb/aantalgraf;
xwaarde = nugraf*(xschaal/tt);
setProperty (bthinu, _alpha, 40);
setProperty (bthinu, _xscale, xschaal);
setProperty (bthinu, _x, xwaarde);
setProperty (bthinu, _y, 200-zet2); //So 200 o day la` bie^?u thi do^. cao cua
So^'
zet++;
// Kết thúc
Tiếp tục bấm F6, lúc này tự nó sẽ nhảy sang Keyframes 14, bảng "Actions-Frame" copy đoạn code bên dưới dán vào bảng "Actions-Frame":
// Bắt đầu
setProperty (bthinu, _alpha, 100); //So^' 100 la` độ ma`u
đậm nha.t của do^` thi.!
gotoAndPlay (12); // quay trở lại Keyframes 12
// Kết thúc
Sau cùng bấm F6, lúc này tự nó sẽ nhảy sang Keyframes 15, bảng "Actions-Frame" copy đoạn code bên dưới dán vào bảng "Actions-Frame":
// Bắt đầu
if (nugraf<aantalgraf) {
gotoAndPlay (6);
} // else { Nếu bạn muốn đồ thị này sau khi chạy đủ các
// gotoAndStop (16); cột dừng lại thì thêm trường hợp else này
đồng thời thêm
// } câu lệnh stop(); ở keyframes 16, đương nhiên Layer 1, Layer 2 cũng phải kéo
dài đến Keyframes16
doordoen2 = ((nugraf*10)+3) add doordoen;
bthinu = "bieu_thid" add laag add zet add nugraf;
duplicateMovieClip (so_dothi, bthinu, doordoen2);
zet2 = ggg*zet;
xschaal = bbb/aantalgraf;
xwaarde = nugraf*(xschaal/tt);
setProperty (bthinu, _xscale, xschaal);
setProperty (bthinu, _x, 14+xwaarde); //14 la` so^' thể hiện trái và phải (thông
số này để chỉnh cho so^' ngay giữa đồ thị)
setProperty (bthinu, _y, 200-zet2); //So^' 200 độ cao thấp của so^'
eval(bthinu).dua_so_tu_file_xml = waarde;
nugraf++;
laag++;
// Kết thúc
Sau khi xong bạn sẽ được như hình minh họa bên dưới:

Lúc này bạn chỉ cần bấm Ctrl + S để lưu lại và bấm Ctrl+Enter để chạy thử được rồi đó. Hoặc bạn có thể bấm Ctrl+F12 để đưa vào Web.
Vui lòng góp ý về bài viết này xin liên hệ:
Lê Quang Ánh Hưng
256 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://www25.brinkster.com/lehung/
hoặc : http://ahung.cjb.net
Chúc Bạn & Gia Đình nhiều sức khỏe.
| Trang 1 | Trang 2 |