Giờ thứ 01: Làm quen với AS, Your First Look at AS
AS là một ngôn ngữ lập trình được xây dựng trong Flash. AS giống như các ngôn ngữ
khác như Javascript, C++ v.v. nhưng bạn không cần biết các ngôn ngữ khác để học
AS (nếu có thì càng dễ hơn).
Bắt đâu học AS, thì chúng ta coi thử AS là gì, làm được những gì và có quan hẹ gì với
các chức năng khác của Flash. Trong bài này, bạn sẽ tìm hiểu coi AS ra đời như thế
nào, xem cách viết AS làm sao, tìm hiểu AS làm được những gì và sau sau cùng là
xác định được nơi lưu trữ AS ở trong Flash.
              
                                            
                                
            
 
            
                 150 trang
150 trang | 
Chia sẻ: phuongt97 | Lượt xem: 616 | Lượt tải: 0 
              
            Bạn đang xem trước 20 trang nội dung tài liệu Hướng dẫn học Flash Trong 24 giờ, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
 trong th4 OBJECT và NAME trong th4 EMBED, c hai s mang 
giá tr là slideshow 
- Nh %t swLiveConnect=true trong th4 EMBED 
- T	o 2 button trong file HTML b"ng o	n code sau: 
CODE 
<INPUT NAME="prev" TYPE=Button VALUE="Previous" 
onClick="prevFrame();"> 
- M.i button s g
i mt hàm. C hai hàm s s d'ng TcurrentFame(“/”)bit ang  
frame th m#y, r*i s d'ng gotoFrame  di chuyn ti ho%c lui. 
CODE 
function nextFrame() { 
 var frameNum = window.document.slideshow.TCurrentFrame("/"); 
 window.document.slideshow.GotoFrame(frameNum+1); 
} 
function prevFrame() { 
 var frameNum = window.document.slideshow.TCurrentFrame("/"); 
 window.document.slideshow.GotoFrame(frameNum-1); 
} 
Công vic tip theo b	n còn nh không: CH6Y TH7 i nào 
 Gi th 18: Gi thông tin cho máy ch, Sending Information to the Server 
Cho n tn bây gi, nhng movie chúng ta làm c h
u ht là ch ch	y mt mình 
(stand alone). Có ngh(a là nó ch ch	y  mt máy khách (client-side) không có s liên 
l	c vi máy ch (Server). Nên nh r"ng Flash cng có th gi tr thông tin cho Server 
ging nh form ca HTML. Vy thì trong gi th 18 này, chúng ta s tìm hiu v v#n 
 này. 
Trong gi th 18, chúng ta s h
c: 
- Tìm hiu v i tng LoadVars 
- T	o mt chng trình server-side n gin 
- S d'ng Flash  gi d liu v cho Server 
i t!ng LoadVars 
R#t may mn là chúng ta ã có Flash MX, bi vì trong nhng phiên bn Flash trc 
ây, mun làm iu này thì chúng ta phi làm nhng movie clip r#t khó khn. +i vi 
Flash MX, chúng ta có th s d'ng i tng LoadVars. 
+i tng LoadVars bao g*m mt tp hp các câu lnh và nhng bin %c bit  gi 
d liu cho Server ging nh post form trong HTML. Chúng ta có th t	o i tng 
ging nh t	o nhng i tng khác. Hãy xem gi th 12 nhé! 
Ly d liu 
Di ây là mt ví d'. Thay vì s d'ng new Object() b"ng new LoadVars. Sau ó thì 
i tng LoadVars mi s c t	o. 
CODE 
myVars = new LoadVars(); 
Vi i tng LoadVars, chúng ta có th làm c 2 vic, ó là gi và l#y d liu. + 
l#y d liu, chúng ta s d'ng câu lnh load. Cái chúng ta c
n  ây là mt ng d$n 
n ni cha d liu: 
CODE 
myVars.load("myURL.txt"); 
Ví d' trên ho	t ng ging nh câu lnh LoadVariables trong gi th 10. Tuy nhiên, 
câu lnh LoadVariables ch l#y và thay th d liu trong cùng mt level vi câu lnh 
này mà thôi. Hãy tng tng, chúng ta có mt file cha d liu nh sau: 
CODE 
name=George&ID=47 
Gi d liu 
Vi i tng LoadVars, chúng ta cng có th gi d liu i lên Server. Trc ht, 
chúng ta a d liu vào i tng LoadVars, r*i sau ó s d'ng câu lnh send  gi 
d liu i. 
CODE 
myVars = new LoadVars(); 
myVars.name = "George"; 
myVars.ID = 47; 
myVars.send("serverprogram.cgi", "_self"); 
+o	n code trên s t	o mt i tng LoadVars mi tên là myVars, r*i a hai thuc 
tính vào i tng myVars. Sau ó, gi d liu i lên Server, chính xác là n chng 
trình CGI tên là echo.cgi. 
Câu lnh send cng ho	t ng tng t nh trong form ca HTML. _self là Target, 
chúng ta có th thay th b"ng các giá tr khác nh ã c bit. 
Nhng còn mt câu lnh na là sendAndLoad. Câu lnh này c ghép câu lnh send 
và load. Có ngh(a là i tng LoadVars s gi d liu lên Server, sau ó s l#y giá tr 
tr v. 
CODE 
mySendVars = new LoadVars(); 
myLoadVars = new LoadVars(); 
mySendVars.name = "George"; 
mySendVars.ID = 47; 
mySendVars.sendAndLoad("serverprogram.cgi", myLoadVars); 
Trng thái ly d liu 
Hãy nh là câu lnh send và load s không l#y d liu ngay tc thì. Có th phi i 
trong mt thi gian ngn ho%c dài. Vì vy, chúng ta s có nhu c
u theo dõi tr	ng thái 
l#y d liu. Chúng ta không th s d'ng d liu ngay lp tc sau câu lnh load ho%c 
sendAndLoad, mà c
n phi kim tra xem ã l#y d liu xong cha. 
Cách n gin nh#t là dùng mt movie clip l%p i l%p l	i  kim tra. Cng có th s 
d'ng getBytesLoaded và getBytesTotal vi nhng d liu ln. Di ây là ví d'  
kim tra vic l#y d liu: 
CODE 
myLoadVars.onLoad = function(success) { 
if (success) { 
 gotoAndStop("load done"); 
} else { 
 gotoAndStop("load problem"); 
} 
} 
Nh trong o	n code trên thì i s success s nhn mt trong hai giá tr true ho%c 
false  cho bit vic nhn d liu ã xong hay cha 
 Gi th 19: Dùng XML vi Flash 
Càng ngày XML càng tr nên thông d'ng trong các ng d'ng tin h
c, và ngay c 
trong Flash, vy trong gi này mình s h
c các iu sau: 
 XML cn bn 
 +i tng XML trong Flash 
 Phân tích và x lý XML theo phung pháo  quy (recursive) 
XML C
n b	n 
XML ch n gin là mt vn bn  cha d liu. XML tng t nh HTML, cng 
dùng các th4. Tuy nhiên, XML khác  HTML là các th4 HTML ã c #n nh trc 
cho các chc nng khác nhau, còn XML thì không. 
Vi XML, b	n có th t t	o cho mình các th4 theo ý b	n  phù hp cho m'c ích 
riêng ca b	n. 
Có th t	o mt XML file vi 1 trình biên tp vn bn (nh Notepad, Textpad ...) n 
gin hay là các software chuyên  vit v XML (XMLSpy, Epic ...) 
Vi Flash MX, b	n có th d dàng truy cp c d liu tr  trong XML, và i 
tng XML ca Flash s t ng phân tích vn bn XML này. 
Trong VNFX có r#t nhiu bài vit v XML (ví d' nh bài gii thiu XML ca Flash-
Lee) các b	n có th tham kho thêm 
 i t!ng XML 
+i tng XML trong Flash g*m có nhiu hàm v" %c tính dùng  giúp b	n l#y và 
phân tích d kin trong XML file mt cách d dàng. Bc 
u tiên khi dùng i 
tng XML là t	o mt phiên bn XML trc: 
CODE 
myXML = new XML() 
Phân tích và s lý v
n b	n thành XML 
Sau khi t	o phiên bn XML trên, hin gi phiên bn này v$n cha có gì c, tuy nhiên 
b	n có th nhanh chóng t	o ra mt tài liu XML b"ng cách dùng lnh parseXML. 
Lnh này s nhp mt chu i vn bn, và phân tích và x lý nó thành 1 tài liu XML. 
CODE 
myXML = new XML(); 
myXML.parseXML("Gary47"); 
Hay b	n có th vit trc tip nh sau 
CODE 
myXML = new XML("Gary47"); 
Nu mà chu i c nhp vào không th t	o thành XML hoàn chnh thì b	n có th 
dùng %c tính status  kim tra. 
CODE 
myXML = new XML("Gary47"); 
trace(myXML.status); 
Output window s cho ra -9 khi ch	y o	n code trên. -9 có ngh(a là thiu th4 óng 
(end tag), vì mình thiu th4 . Nu output window cho ra -10 thì b	n thiu th4 
m (start tag), và 0 có ngh(a là m
i vic hoàn chnh 
Ly d liu t 
i t!ng XML 
Có nhiu hàm  làm vic này. Ví d', b	n có th dùng firstChild  l#y nút (node) 
u tiên ca i tng XML: 
CODE 
myXML = new XML("Gary47"); 
trace(myXML.firstChild); 
Output window s cho ra Gary47. Vì 
ây chính là nút 
u tiên ca i tng XML. Nu chúng ta i xâu vào 1 l
n na vi 
firstChild 
CODE 
myXML = new XML("Gary47"); 
trace(myXML.firstChild.firstChild); 
K, này output window s cho ra Gary, vì ph
n t name là nút 
u 
tiên ca user 
Ngoài cách trên ra, còn 1 cách na là dùng childNodes, là ma trn ca ca các nút. 
Cùng mt ví d' trên nhng có th dùng nh sau vi chidlNodes 
CODE 
myXML = new XML("Gary47"); 
trace(myXML.childNodes[0].childNodes[0]); 
Di nút name, chúng ta còn mt nút na di nút name, và có th dùng cách trên  
l#y nút ó: 
CODE 
myXML = new XML("Gary47"); 
trace(myXML.childNodes[0].childNodes[0].childNodes[0]); 
và output window s cho ra ch Gary. +ây là nút vn bn (text node) ca nút name. 
Nhìn thì tng ây là tn cùng r*i, không th xung sâu hn c na, vì ây là nút 
cui cùng, nhng nu b	n mun l#y giá tr ca nó nh là chu i vn bn thì b	n có th 
i thêm 1 bc na nh sau: 
CODE 
myXML = new XML("Gary47"); 
trace(myXML.childNodes[0].childNodes[0].childNodes[0].nodeValue); 
Nu b	n mun l#y cái ID  trong nút th 2 thì thay  i nh sau: 
CODE 
myXML = new XML("Gary47"); 
trace(myXML.childNodes[0].childNodes[1].childNodes[0].nodeValue); 
*  gii thích thêm v on code trên, nu bn ch dùng childNodes thì kt qu s! là 
1 	i t
ng, còn nu bn dùng nodeValue thì s ra chu"i. Bn có th th# b$ng on 
code mình vit d
i ây 
CODE 
myXML = new XML("Gary47"); 
myVar1 = myXML.childNodes[0].childNodes[0].childNodes[0]; 
myVar2 = myXML.childNodes[0].childNodes[0].childNodes[0].nodeValue; 
trace ("myVar1: " +typeof(myVar1)); 
trace ("myVar2: " +typeof(myVar2)); 
và output window s cho b	n th#y rõ, cái nào law i tng và cái nào là chu.i. 
T to XML t "tay tr%ng" 
Không bit dch câu này sao cho úng ngh(a vi "Creating XML from Scratch". 
ành dch nh trên vy. 
Các cách t	o XML  trên u t) 1 chu.i vn bn, nhng nu nh b	n không có 1 
chu.i vn bn nào trc thì sao? B	n có th dùng createElement  t	o ra các nút 
mi và dùng createTextNode  t	o ra các text node. Tuy nhiên 2 lnh trên ch t	o ra 
nút ch không thêm vào trong XML, vy b	n phi thêm nó vào b"ng lnh 
appendChild. 
+ minh ho	, chúng ta s t	o mt XML tng t nh trên nhng vi các lnh v)a  
cp. 
CODE 
myXML = new XML(); 
newElement = myXML.createElement("user"); 
myXML.appendChild(newElement); 
newElement = myXML.createElement("name"); 
myXML.childNodes[0].appendChild(newElement); 
newText = myXML.createTextNode("Gary"); 
myXML.childNodes[0].childNodes[0].appendChild(newText); 
newElement = myXML.createElement("ID"); 
myXML.childNodes[0].appendChild(newElement); 
newText = myXML.createTextNode("47"); 
myXML.childNodes[0].childNodes[1].appendChild(newText); 
Nu b	n mun thay  i giá tr ca text node, thì b	n ch c
n dùng nodeValue 
CODE 
myXML.childNodes[0].childNodes[1].childNodes[0].nodeValue = 53; 
Thuc tính 
Các thành ph
n ca XML có th có thuc tính (attribute). Trong ây mình gp rc 
r	i v cách dch attribute và property, c 2 ch này ting vit  u dch là thuc tính, 
c tính ... mà ting anh thì khác tht rc r	i vy mình xin 
c dùng ting Anh 
nhe. Attribute g*m có t) khoá và giá tr ca t) khoá ó, và dùng  nh rõ mt thành 
ph
n hn. Ví d', o	n XML di dây vi attribute type làm rõ ngh(a ca thành ph
n 
name hn, ("alias" là bí danh) 
CODE 
 Gary 
 47 
 Nu b	n mun a o	n code trên vào trong XML object thì phi  i d#u " (ngo%c 
kép) thành d#u ' (ngo%c n) 
CODE 
trace(myXML.childNodes[0].childNodes[0].attributes.type); 
Còn mt cách na cng cho ra kt qu nh trên là dùng [] 
CODE 
trace(myXML.childNodes[0].childNodes[0].attributes["type"]); 
Và b	n có th thay  i giá tr ca attribute, hay thêm attribute mi nh sau: 
CODE 
myXML.childNodes[0].childNodes[0].attributes["type"] = "real"; 
Vi câu trên, nu attribute type cha có thì nó s c t	o 
(trong sách các on code trên tác gi vit ln gia type và alias, nu bn so sánh 
gia sách và bài này thì s thy s% khác bit, và có th các source file cng s không 
chính xác, vy các bn cn kim tra li) 
Khác vi node, attribute không th truy cp b"ng ma trn (array) nên b	n không th 
dùng các lnh nh length hay dùng [] vi index number. Nhng b	n có th dùng vòng 
l%p for ... in  truy cp t)ng attribute ca node. 
CODE 
myXML = new XML("Gary 
47"); 
for(attr in myXML.childNodes[0].childNodes[0].attributes) { 
 trace(attr+": "+myXML.childNodes[0].childNodes[0].attributes[attr]); 
} 
output window s cho ra: alias và verified 
Thêm vài AS v XML 
B	n cng c
n bit thêm mt s iu v i tng XML. Nh#t là im sau, b#t c mt 
ph
n nào ca i tng XML cng có th là mt i tng XML riêng bit. Ví d' b	n 
có th l#y cái node 
u tiên ca i tng XML và quy thành mt bin 
CODE 
myXML = new XML("Gary47"); 
thisUser = myXML.childNodes[0]; 
thisUserName = thisUser.childNodes[0]; 
thisUserNameText = thisUserName.childNodes[0].nodeValue; 
thisUserID = thisUser.childNodes[1]; 
thisUserIDText = thisUserID.childNodes[0].nodeValue; 
 B	n có th bit c s node  trong  trong mt node khác b0ng thuc tính length 
ca childNodes. Ví d', user node có 2 node  trong, vy b	n có th bit c b"ng 
vi o	n code sau: 
CODE 
myXML = new XML("Gary47"); 
trace(myXML.childNodes[0].childNodes.length); 
Ngoài vic có th tìm c giá tr ca mt node vn bn b"ng nodeValue, b	n có th 
bít c tên ca thành ph
n (hay th4) vi nodeName. Ví d' b	n có th l#y c tên 
ca thành ph
n (th4) 
u tiên ca user là name nh sau: 
CODE 
myXML = new XML("Gary47"); 
trace(myXML.childNodes[0].childNodes[0].nodeName); 
B	n có th bit c mt node là thành ph
n ca XML hay là mt node vn bn (text 
node) b"ng vi thuc tính nodeType. Nu nodeType là 1 thì có là 1 thành ph
n ca 
XML và có th có nhiu thành ph
n  trong node ó, nu là 3 thì node ó chính là 
node vn bn. 
 Gi th 20 : Printing 
Không phc t	p nh trình duyt ho%c Server Cominucation, in #n là mt cách mà 
FLash truyn d liu ra ngoài. 
Kh nng in #n ca FLash là r#t hu ích vì nó cho phép chúng ta xây dng nhng vn 
bn mà ngi s d'ng có th in ra ni dung t) file flash ca b	n.+ây thng là la 
ch
n tt hn da vào hàm in #n ca trình duyt . 
Trong gi th 20 này chúng ta s : 
- H
c cách thit lp movie ca b	n cho vic in #n 
- H
c cách s d'ng các lnh in 
- T	o ra mt biu m$u có th in c 
I> Thit lp cho movie có kh	 n
ng in: 
1-B	n c
n làm mt vài vic vi movie trc khi có th s d'ng c các lnh in ca 
Action Script. Tht không may,nhng lnh in này không c linh ho	t lm. Nu s 
d'ng chúng mà không có s chu!n b , Flash s in ra toàn b ni dung ca movie, 
t)ng frame mt. 
Và ó thng là iu mà b	n không mun. Có khi b	n ch mun in duy nh#t frame 
hin t	i, ho%c mt frame b#t k, trong mt movie riêng, ho%c mt o	n g*m nhiu 
frame. Nhng him khi b	n mun in ht toàn b. 
2 - +%t tên cho frame 
B	n s ch nh nhng frame c in b"ng ký hiu "#p" . Nu ký hiu ó không c 
%t lên frame nào thì Flash s in ra toàn b movie ca b	n. Ngc l	i, nu b	n %t t) 
hai ký hiu tr lên trong movie ca b	n thì flash s in ra t#t c nhng frame ó. 
Hình 1 cho ta th#y timeline vi hai frame ã c %t ký hiu in. Chú ý r"ng, t#t c 
nhng frame có cha ký hiu in này s c %t  mt layer riêng. Theo cách ó, b	n 
có th %t c nhiu ký hiu trên nhiu frame. Và nó cng thun tin hn khi b	n 
không mun s d'ng ký hiu "#p" nh mt label tht cho keyframe. 
*Chú ý: Khi b	n %t t) hai ký hiu in tr lên, khi test movie, Flash s xu#t hin li 
cnh báo : "WARNING : Duplicate layer.." 
+ó là iu ri ro có th xy ra, nhng cng s không nh hng n movie ca b	n 
tr) phi b	n s d'ng label "#p" trong câu lnh "gotoAndStop" ho%c nhng lnh tng 
t.... 
3- Lên k ho	ch in 
B	n c
n phi suy ngh( và lên k ho	ch cho movie ca b	n khi mun movie có kh 
nng in. Vì không th ch in mt frame hin t	i nên b	n 
c
n t	o ra nhng frame có kh nng in. Chú ý r"ng m
i th t*n t	i trên movie ca b	n 
s c in ra. Nó bao g*m c nút Print (  khi nh#n vào s thc hin lnh in), nu 
trong movie 
có t*n t	i. 
Vì vy chúng ta c
n phi có mt frame cha nút Print, và mt frame khác tng t 
nhng không có nút Print cng nh các yu t khôgn 
c
n thit khác. Frame th hai này s c d%t nhãn là "#p" 
B	n có th b trí b"ng cách s d'ng timeline chính. Ví d' b	n có mt menu và mt 
nút Prin trên hai layer riêng bit, mà c
n có 
trong ni dung ca biu m$u in. Nhng layer này nu b	n không mun in ra thì không 
c
n kéo chng sang frame có nhãn "#p" 
hai hình sau th hin iu này. Hình th nh#t,là frame mà ngi dùng s th#y xu#t 
hin trên trang web. NÓ cha ni dung. nút Print và menu 
 Ngc l	i, trong hình hai là ni dung mà ngi duyt web không th#y c, ít nh#t là 
trên màn hình. Frame này c %t tên là "#p" 
b	n có th th#y trên timeline.Layer Buttons không s d'ng keyframe ging nh  
frame 1. Ngoài vic ch%n nút Print không oc in ra, 
có th thêm vào frame này mt s thông tin s c in ra nh a ch, ... 
Bây gi b	n ã bit làm th nào  chu!n b cho mt biu m$u in, bây gi cùng h
c 
AS c
n thit 
II> Các câu lnh 
Có hai lnh in chính c s d'ng. Chúng có mt khác bit r#t nh&, nhng v cn bn 
là ho	t ng ging nhau. 
1- Print 
Lnh th nh#t là 
QUOTE 
Print 
Lnh này bao g*m hai tham s. Tham s th nh#t là i tng  in. Thng là 
timeline chính, ho%c "_root". B	n cng có th s d'ng 
"this". Tuy nhiên, nu b	n không mun in nhng frame trong movie, b	n có th s 
d'ng tham chiu ti movie ó. 
Tham s th hai là mt trong ba tu, ch
n sau : 
QUOTE 
bframe 
QUOTE 
bmovie 
QUOTE 
bmax 
Các tham s này giúp FLash có th co dãn vn bn in theo ý ca ngi s d'ng. Flash 
có th co dãn vn bn in ti kích thc 
ca trang gi#y mà không bóp méo vn bn. Ví d' nu frame c in có kích thc 
550x400, thì chiu ngang s c phóng to ti kích thc 550px 
chiu d
c có th s c scale theo t8 l. 
Khi s d'ng tu, ch
n "bframe", t)ng frame s t scale  l#p 
y kích thc ca 
trang ó. Nu frame th nh#t có ni dung vi kích thc là 550x400 
nhng frame th hai ch cha ni dung có kích thc 275x200, khi ó frame th hai 
s t ng scale g#p ôi kích thc ban 
u. 
khi s d'ng tu, ch
n "bmax", Flash s kim tra toàn b các frame c in  xác nh 
xem frame nào có kích thc ln nh#t. Các frame 
còn l	i s scale da trên kích thc ca frame ln nh#t, tính theo t8 l. +iu này ta
 
nên các frame có kích thc t8 l vi nhau 
Ví d', frame ln nh#t có kích thc 550x400, và nó l#p 
y trang in. Frame khác ch 
có kích thc 275x200, nó ch chim mt na trang in. 
Tu, ch
n cui cùng là "bmovie", trng hp này b	n c
n phi làm thêmm mt vic 
nh& na, ó là t	o ra frame mi có cha mt khung. 
Khung này s xác nh kích thc ln nh#t c in ra i vi vn bn (b"ng kích 
thoc ca khung). B	n phi %t tên frame này vi ký hiu 
"#b". Và flash s s d'ng kích thc ca khung  scale toàn b các frame còn l	i. 
Nu có mt ph
n vn bn này n"mg ngoài khung in 
chúng s không c in ra. 
Sau ây là ví d' v lnh "Print" : 
QUOTE 
on(release) { 
 print(this,"bframe"); 
} 
Nh b	n ã th#y, tu, ch
n c coi nh mt chu.i và c %t trong d#u "" 
2-PrintAsBitmap 
Câu lnh này làm vic tng t nh lnh Print vi hai tham s tng t. 
+iu khác bit là lnh Print s gi các i tng * ho	 và font ch ti máy in. Sau 
ó, máy in s xây dng l	i các vector và ni dung  in ra. 
Ngc l	i, PrintAsBitmap s chuyn toàn b ni dung thành mt nh bitmap ln và 
gi ti máy in. 
+im thun li nh#t ca PrintAsBimap là  trong sut ca vn bn cng c in ra. 
Nu b	n có mt i tng * ho	 bán trong sut, 
chc có u i4m chn b	n s c
n n chc nng in này, *ng thi nó cng ho	t ng 
tt vi nhiu lo	i máy in hn. 
Lnh in chính là vn bn c in ra có tính th!m m5 cao, ng cong smooth hn và 
ch rõ ràng hn khi c in ra. Nó cng nhanh hn 
khi in qua m	ng. 
Nguyên tác chung nh#t là s d'ng lnh PrintAsBitmap khi b	n tht s chc chn kt 
qu s ging nh ni dung hin th trên màn hình. 
S dung Print khi vn bn không c
n  chính xác cao ho%c khi b	n xây dng movie 
 iu khin môi trng nh m	ng ni b. 
Chú ý: Nu b	n se d'ng movie qua internet, lnh in ch làm vic khi t#t c các frame 
trong movie c load xung. 
Thao tác : To biu mu in 
Mt iu mà ngi dùng ghét nh#t trên mt website là mt biu m$u mà chúng ta 
phi in ra, in vào, r*i gi i . Chúng ta ang s d'ng máy tính, t nhiên l	i phi 
i kim cái bút trên bàn  vit ? 
Vì vy t	i sao chúng ta không t	o ra biu m$u cho phép in thông tin vào, sau ó 
c in ra vi 
y  ni dung ã c nhp vào. 
Chúng ta s làm ví d' n gin này, và s th#y chúng thun tin hn r#t nhiu so vi 
mt biêt m$u html yêu c
u ngi s d'ng in ra toàn b ni dung ca site. 
B	n hoàn toàn có th i khin nhng gì s c in ra, vì vy nhng th linh tinh trên 
trang web có th c b& qua và nhng yu t mi nh email address có th c 
thêm vào. 
1- T	o mt movie mi 
2- T	o ra các trng nhp d liu (ví d' tên, tu i, a ch, gii tính, email...) (xem 
hình) sau ó %t tên layer này là CONTENT 
3-+%t tiêu  cho trng lên phía trên ô nhp liu 
4-T	o thanh tiêu  cho Form. Chú ý,hai lo	i tiêu  này s c %t  hai layer riêng 
bit . 
5-T	o nút Print và %t trong layer tên là Buttons 
6-CHèn o	n mã sau cho button : 
QUOTE 
on (release){ 
print (this, "bmax"); 
} 
7- Thêm Frame th hai cho movie, kéo Title Bar và Content sang frame 2 
T	o blank keyframe cho layer Buttons và Titles, vì chúng s có ni dung khác trong 
frame th hai 
8- Trong frame th hai ca layer Title, %t mt tiêu  khác. Ví d', nu frame th nh#t 
là "Fill out that application" thì  frame th hai ch c
n là Appilcation 
9- Sau ó, biu m$u ã s2n sàng  in vào. Tiêu  c s bin m#t, b	n có th nhìn 
th#y tiêu  mi trong hình.. 
10- Thêm mt layer mi tên là Signature. +%t mt keyframe  frame th hai ca layer 
này. Thêm ng ngn cách và a ch trong frame này. Nu làm úng thì frame 1 ca 
layer 
này s không có gì, ni dung ch t*n t	i  frame 2 
11- Thêm layers tên Frame Labels . +%t trong ó hai keyframe. Keyframe th 2, 
chúng ta %t ký hiu "#p" . Keyframe th nh#t chèn code 
QUOTE 
stop(); 
Test movie ca b	n. B	n hãy in vào biu m$u ó, và #n nút Print. Frame th hai s 
c in ra vi tiêu  "Application", ch ký, và a ch... 
Tóm tt 
+ in c các frame trong mt movie b	n c
n phi %t label cho chúng là "#p". B	n 
có th %t tên cho mt ho%c nhiu frame trong cùng mt movie. 
M
i th trong frame "#p" s c in ra. B	n có th trang trí tu, thích i vi biu 
m$u c in ra, tr) nhng yu t nh menu. 
B	n có th s d'ng lnh "Print"  in các frame s d'ng vector shape  gi ti máy 
in. Tuy nhiên, nu c
n in nhng i tng * ho	 bán trong sut ho%c chc chn r"ng 
t#t c nhng biu m$u in ra ging nhau, b	n có th s d'ng lnh PrintAsBitmap 
 Gi th 21: S dng component, Using component 
ActionScript cho các Component 
i kèm Flash 
Có 7 component gn lin kèm theo chng trình Flash: CheckBox, ComboBox, 
ListBox, PushButton, RadioButton, ScrollBar, ScrollPane. 
+ thêm mt component vào movie ca b	n, b	n có th click úp lên component 
trong bng Component, ho%c nh#n và kéo mt component vào stage. 
PushButton 
Click và kéo component PushButton vào stage s t	o mt instance (th hin) mi ca 
component PushButton trên màn stage. Khi ó b	n ã thêm mt s ph
n t Library 
vào trong movie. R#t may là các ph
n t này c c#t trong các folder r#t g
n trong 
Library (th vin), vì th chúng cng không nh hng m#y n công vic ca b	n. 
Component PushButton trên stage trông r#t n gin: ch là mt khung vi t) 
"PushButton"  gia. 
B	n nh bt tính nng Live Preview (xem trc) ca Flash b"ng cách ch
n Control---
>Enable Live Preview. 
Sau khi PushButton ã  trên stage, b	n có th click ch
n nó và m bng Properties 
  i tên. Hai thông s có th thit %t cho component PushButton là Label (nhãn): 
ta  i thành Press Me ! và Click Handler (qun lý s kin nh#n nút): ây là tên ca 
hàm c g
i khi nút c click. Hàm này phi n"m trong cùng Timeline vi nút; vì 
th nu nút %t  level gc (root level), hàm phi  trên Timeline chính. Ta thit %t 
Click Handler thành buttonPressed (nút ã c nh#n). 
Ngoài ra b	n %t cho component mt instance name (tên minh h
a) là testButton 
(kim tra nút). 
Bây gi t#t c công vic phi làm là vit hàm buttonPressed. Di ây là mt ví d' 
n gin. Hàm này ch gi mt vài dòng text ra ca s Output: 
ActionScript 
function buttonPressed(buttonInstance) { 
 if (buttonInstance == testButton) { 
 trace("Test Button Pushed."); 
 } else { 
 trace(buttonInstance._name); 
 } 
} 
M.i hàm qun lý nút s chuyn mt tham s: mt tham chiu n nút g
i hàm. Vì th 
b	n có th kim tra instance này có phi có tên là testButton hay không. Hàm ví d'  
trên s chuyn thông báo "Test Button Pushed" nu nút c nh#n là testButton, và in 
ra tên minh h
a ca nút nu nút b nh#n không phi là testButton. 
B	n có th xem ví d' m$u này trong movie 21pushbutton.fla. 
CheckBoxes 
Component CheckBox (hp kim) tng t nh cái mà chúng ta ã t	o  gi 15 (anh 
em dch sau nhé). 
+ t	o mt CheckBox component, click úp vào nó trong bng Components, ho%c 
click và kéo nó lên trên stage. + t	o mt instance th hai, m folder Flash UI 
Components trong th vin Library và kéo component CheckBox lên trên stage. 
Trong ví d' movie 21checkboxes.fla, tôi ã t	o 3 hp kim (CheckBoxes). Nu b	n 
ch
n mt component trong chúng và m bng Properties, b	n s th#y nó có nhiu 
thông s hn so vi component PushButton. 
B sung vào các thông s Label và Change Handler, gi ây b	n có c Initial 
Value (giá tr ban 
u) và Label Placement (sp xp nhãn). Thông s Initi
            Các file đính kèm theo tài liệu này:
 huong_dan_hoc_flash_trong_24_gio.pdf huong_dan_hoc_flash_trong_24_gio.pdf