Tài liệu Làm quen vi AS, Your Fi rst Look at AS:  Gi th 01: Làm quen vi AS, Your First Look at AS 
AS là mt ngôn ng lp trình c xây dng trong Flash. AS ging nh các ngôn ng 
khác nh Javascript, C++ v.v. nhng b	n không c
n bit các ngôn ng khác  h
c 
AS (nu có thì càng d hn). 
Bt âu h
c AS, thì chúng ta coi th AS là gì, làm c nhng gì và có quan h gì vi 
các chc nng khác ca Flash. Trong bài này, b	n s tìm hiu coi AS ra i nh th 
nào, xem cách vit AS làm sao, tìm hiu AS làm c nhng gì và sau sau cùng là 
xác nh c ni lu tr AS  trong Flash. 
 i sát ngha và tin cho sau này, mình s không dch mt s	 t
 ng ra ting vit 
nh
 script, movieclip v.v. 
Script là gì? 
AS là ngôn ng lp trình, vi các lnh sai khin Flash movie làm vic theo úng 
nhng gì mình vit (ch có mình vit sai ch computer không làm sai ). Ph
n nhiu 
thì AS ch làm vic trong môi trng ca Flash, tuy nhiên AS cng có th gi lnh 
cho browser, h iu hành v.v. 
Script có th ngn g
n vài ch hay...
                
              
                                            
                                
            
 
            
                 149 trang
149 trang | 
Chia sẻ: tranhong10 | Lượt xem: 1229 | Lượt tải: 0 
              
            Bạn đang xem trước 20 trang mẫu tài liệu Làm quen vi AS, Your Fi rst Look at AS, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
 Gi th 01: Làm quen vi AS, Your First Look at AS 
AS là mt ngôn ng lp trình c xây dng trong Flash. AS ging nh các ngôn ng 
khác nh Javascript, C++ v.v. nhng b	n không c
n bit các ngôn ng khác  h
c 
AS (nu có thì càng d hn). 
Bt âu h
c AS, thì chúng ta coi th AS là gì, làm c nhng gì và có quan h gì vi 
các chc nng khác ca Flash. Trong bài này, b	n s tìm hiu coi AS ra i nh th 
nào, xem cách vit AS làm sao, tìm hiu AS làm c nhng gì và sau sau cùng là 
xác nh c ni lu tr AS  trong Flash. 
 i sát ngha và tin cho sau này, mình s không dch mt s	 t
 ng ra ting vit 
nh
 script, movieclip v.v. 
Script là gì? 
AS là ngôn ng lp trình, vi các lnh sai khin Flash movie làm vic theo úng 
nhng gì mình vit (ch có mình vit sai ch computer không làm sai ). Ph
n nhiu 
thì AS ch làm vic trong môi trng ca Flash, tuy nhiên AS cng có th gi lnh 
cho browser, h iu hành v.v. 
Script có th ngn g
n vài ch hay cng có th dài c trm trang. Script có th c 
vit gp l	i mt ch hay cng có th vit rãi rác khp ni trong movie. 
Xut x ca AS 
AS rât ging ngôn ng C++, Java, javascript .v.v và c da trên tiêu chu!n do 
ECMA (European Computer Manufactuers Association) lp ra g
i là ECMAScript. 
Nhiu ngi hiu l
m r"ng AS da trên Javascript, nhng thc ch#t c 2 u da trên 
ECMAScript. 
Lúc 
u vit script trong Flash r#t n gin và cho ti Flash 4 mi uc phát trin 
nhng cng v$n còn "thô s" vi nhng vòng l%p và các iu kin "if...else". Cho ti 
Flash 5 thì dân Flash mi có th lp trình và gn lin script vi các yu t trong 
movie. . Sang ti Flash MX thì AS ã tr thành ngôn ng lp trình toàn din vi hn 
300 câu lnh, hàm .v.v 
Nhn biêt AS 
AS n gin là nhng câu lnh c vit b"ng ting Anh (vì l này mà mình s không 
dch các t ting Anh liên quan n AS, và mt ph
n thì mình không gi&i thut ng 
computer hay ting vit cho lm) và các phép tính và d#u câu. Ví d' sau: 
ActionScript 
on (press) { 
 gotoAndPlay ("my frame"); 
} 
B	n có th gii ngh(a o	n mã trên b"ng cách tìm hiu các t) chính trong ó. Ch 
"press" gi ý rng ngi dùng ang kích chut vào mt cái gì ó, (và trong trng 
hp này là cái nút) Ch k tip "gotoAndPlay" do 4 ch "go to and play" gp l	i, gi 
ý r"ng AS ra lnh cho Flash timt im nào ó trong movie và bt 
u chi t) im 
ó. 
AS có th làm nhng gì? 
Flash movie g*m có các scence (cnh), và m i cnh s có 1 timeline (thi gin 
biu???) và timeline s có các frame (khung) bt 
u t) s 1. Thông thng thì Flash 
s chi t) frame 1 cho ti frame cui ca scence vi tc  c nh và d)ng l	i hay 
l%p l	i t) 
u tuy theo ngi làm Flash. 
M'c ích chính ca AS là thay  i th t trong cách chi ca Flash. AS có th dùng  
b#t frame nào, hay ch	y ngc tr l	i frame trc hay nhy vài frame r*i chi tip. 
Nhng ó không ch là nhng gì AS có th làm c. AS có th bin film ho	t hình 
ca Flash thành mt chng trình ng d'ng có s tng tác ca ngi dùng. Di 
ây là nhng c bn mà AS có th làm: 
 Ho	t hình: B	n không c
n AS  làm ho	t hình, nhng vi AS thì b	n có th 
t	o nhng ho	t hình phc t	p hn. Ví d', trái banh có th tng xung quanh 
mành hình mà không bao gi ng)ng, và tuân theo các nh lut vt lý nh lc 
hút, lc ma sát, lc phn v.v Nu không có AS thì bn c
n phi dùng c hàng 
ngàn frame  làm, còn vi AS thì ch 1 frame cng  
 Navigation (hông bit dchlàm sao cho hay ): thay vì movie ch chi t)ng 
frame 1 theo th t thì b	n có th d)ng movie & b#t c frame nào, và cho phép 
ngi dùng có th chi  b#t c frame nào .v.v 
 Thu nhp thông tin t) ngi dùng (user input): b	n có th dùng AS  h&i 
ngi dùng 1 c
u h&i, r*i dùng thông tìn ó trong movie hay có th gi cho 
server hay làm nhng gì b	n mun. 
 Thu nhp thông tìn t) các ngu*n khác: AS có th tng tác vi server và l#y 
các thông tin t) server hay text file 
 Tính toán: AS có th làm b#t c phép tính nào mà toán h
c cho phép 
 Thay  i hình nh trong movie: AS có th thay  i kích thc, màu sc, v trí 
ca b#t c movie clip (MC) nào trong movie flash ca b	n. B	n có th t	o 
thêm phiên bn hay xoá bi phiên bn ca MC vi AS 
 Phân tích môi trng ca máy tính: Vi AS b	n có th l#y gi t) h iu hành 
hay a ch ang chi movie Flash ó. 
 +iu khin âm thanh trong flash movie: AS là cách tt nh#t  iu khin âm 
thanh trong Flash,AS có chi chm, chi nhanh, ng)ng, quay vòng .v.v bât k, 
âm thanh nào trong Flash. 
Phát trin các kh	 n
ng ca AS 
+iu quan tr
ng nh#t mà AS có th làm cho b	n là nhng gì cha ai ngh( ti Vi 
AS và trí tng tng và óc sáng t	o ca b	n thì không có gì là không th xy ra vi 
AS c. 
M'c ích ca các sách, và ca VNFX là hng d$n b	n hiu bit v Flash  t) ó 
b	n có th t dùng nó  làm ra nhng sn ph!m tuyt vi mà không ai có. 
Vit AS  
âu 
Câu h&i 
u tiên nhng ai tìm hiu AS thng h&i là "Vit AS vào âu?". Flash có 
mt môi trng làm multimedia khá phc t	p. Nu b	n ã dùng Flash r*i hay ã 
c 
qua các hng d$n i kèm vi Flash, thì b	n ã bit các yu t c bn nh timeline, 
key frame v.v. nêu b	n cha bit thì mình khuyên b	n nên tìm hiu trc r*i tiêp t'c  
ây. - trong m'c Flash T ng Quá, VNFX có post link  download 3 cái CD hng 
d$n c bn cho ngi cha bao gi dùng Flash. 
Vit AS  time line 
AS có th vit vào key frame  b#t c timeline nào. + làm nh vy, b	n ch
n key 
frame  trong timeline trc r*i b	n m Action Panel ra (có th nh#n F9)  viêt hay 
xem AS ã c vit  ó. Mình khuyên b	n nên dùng Action Panel di d	ng 
Expert hn là Normal, vì nh vy b	n s h
c c nhiu và l hn. 
Khi vit AS vào key frame nh vy thì AS  key frame ó s ho	t ng khi mà Flash 
chi ti key frame ó. Ví d' nh lnh AS stop() c %t  key frame 5 thì Flash 
chi ti key frame 5 thì s d)ng l	i cho ti khi có lnh khác. cách vit này g
i là vit 
vào time line 
Mt trong nhng lý do vit script vào time line là khi b	n mun dùng function (hàm), 
vì function cho phép chúng ta tái s d'ng o	n mã ó t) nhiu ni, nhiu level khác. 
Viêt AS  nút 
Các ph
n t ca Flash movie c g
i là symbol (biu tng). thng thì symbol là 
các hình nh. Và có 3 lo	i symbol: button (nút), graphich (hình nh), movie 
clips(o	n phim). 3 lo	i trên thì AS không th vit lin vi graphic, còn button và 
movie clip thì OK. 
Nút s không có tác d'ng gì c nu nh không kèm AS lên trên nó. Mun kèm AS 
vào nút thì ch
n nút trên stage (sân kh#u: din tích ca flash movie), r*i sau ó m 
Action panel và vit vào ó nh ta vit vào key frame. 
AS vit trên nút ch ho	t ng khi chut ho%c bàn phím tác ng lên nút mà thôi 
Vit AS  MC 
MC khác vi graphic  ch MC c %t tên khi mang vào stage, MC thng là hình 
ành ng, và có th có AS kèm theo MC. + vit AS vào MC thì cng tng t nh 
ta làm vi nút. 
AS kèm theo MC có th iu khin MC ó hay là các MC trong cùng mt timeline 
hay các timeline  ngoài movie 
Bài tp 
1. T	o mt movie mi 
2. t	o 3 key frames 
3. Dung Flash v m.i hình khác nhau cho m.i frame 
4. Ch	y th movie (nh#n Control + enter) 
5. Sau ó tr l	i timeline, vit vào keyframe 2 o	n mã : "stop();" 
6. Cho ch	y th movie l
n na 
7. Và k, này b	n ch th#y Flash chi ti frame th 2 thì ng)ng, và b	n ã thành công 
trong vic vit AS : 
 Gi th 02: S dng Action panel, Using the Script Editing Window 
Nu dân * ho	 coi Timeline là nhà thì dân lp trình vi AS coi Action Panel là ni 
c ng' ca mình, t	i ó dân AS có th thay  i, vit t#t c các lnh. Vì vy r#t quan 
tr
ng là b	n có th s d'ng quen thuc Action Panel 
Flash MX s d'ng các panel  giúp b	n có th l#y các thông tin v movie b	n ang 
làm mt cách d dàng. Khi b	n cài %t và chay Flash l
n 
u tiên, Flash s h&i b	n 
mun s d'ng Flash nh th nào và Flash s xp %t các panel cho hp lý. B	n cng 
có th thay  i cách xp %t theo ý ca b	n. 
Nói chung bn nên xp t các panel ca bn làm sao cho thun tin cho bn nht, và 
cái này cng cn có kinh nghim ó Mình dùng dual monitor, mình close ht các 
panel ch gi li 2 cái chính trên màn hình, mình kéo cái action panel và property 
panel qua mt bên monitor, còn cái bên kia  cho cái stage, nu cn m panel nào 
thì mình dùng phím tt  m. 
S d'ng Action panel có 2 cách: bình thng (normal) và chuyên d'ng (expert). Khi 
mi ch	y máy l
n 
u thì Action panel c set di d	ng bình thng. / d	ng bình 
thng thì b	n không có th ánh trc tip các câu lnh, mà phi ch
n t) các menu 
bên tay trái ca panel. Vi setup nh vy thì b	n không bao gi ph	m phi l.i khi vit 
AS c. 
Mình s b phn h
ng dn dùng normal vì mình thy dùng normal mode s không 
bao gi tin 
c, dùng expert mode lúc u hi mt nh
ng bo m là các bn s 
hc 
c mau và nh lâu hn 
S d'ng Action panel vi expert mode thì b	n có nhiu t do hn, nhng t do *ng 
ngh(a vi trách nhim nên b	n phi c!n tht khi vit code. T) normal mode chuyn 
sang expert mode thì nh#n phím tt CONTROL + SHIFT + E, chuyn ngc l	i thì 
dùng CONTROL + SHIFT + N (nh kích chut vào action panel trc khi dùng phím 
tt). B	n có th  i t) Normal mode sang expert mode b#t c lúc nào, nhng  i 
ngc l	i thì ch c khi mà code ca b	n không có l.i. 
Action panel có popup menu (mi tên ch xung di, n"m  góc phi ca action 
panel) và trong ó có nhiu lnh r#t tt cho b	n khi b	n dùng Action panel, nh#t là i 
vi Expert mode. B	n có th tìm và thay th b#t c câu nào, ch nào trong script ca 
b	n. Phím tt cho tìm kim là Control + F và cho thay th là Control + H, nh#n F3 thì 
Flash s tip t'c tìm ch, câu b	n mun tìm. 
Mt lnh na là "Goto Line" giúp b	n tìm c câu b	n mun tìm. Lnh "Check 
Syntax" s rà soát script ca b	n và tìm nhng l.i cú pháp. Lúc mi tp vit AS, thì 
dùng nên thng xuyên dùng Chech Syntax  check l i trong sctipt. Lnh tip theo 
là "Auto Format" và "Auto Format Options" giúp cho b	n trình bày script ca b	n cho 
d 
c hn. B	n có th thay  i màu sc, font ch v.v. cho script ca b	n  cho b	n 
d 
c code hn b"ng cách vào Edit > Preferences > ActionScript Editor. Các ph
n 
còn l	i ca pop-up window cho phép b	n c xu#t hay nhp AS di d	ng text file 
và in script ra gi#y. 
Tuy g
i là expert mode nhng thc ra dùng còn d hn là normal mode. Bi vì di 
expert mode thi Action panel ch0ng khác gì chng trình "note pad" hay "text pad". 
B	n ch vic vit nhng gì b	n mun vào ó. Khi dùng di expert mode, b	n v$n có 
th tham kho các câu lnh, các cú pháp ca AS  cái khung bên trái ca Action 
Panel. Và nu b	n tôn th mt s quy tt thì b	n s s c chc nng "Code Hint" 
ca Action Panel, chc nng này t	o nên nhng khung nh& nh& trong ó có nhng câu 
lnh ca AS úng hp quy cho b	n la ch
n. 
+ tr thành mt "cao th" v AS thì b	n không th nào không nm vng v Action 
panel c. 
Sau ây là bài thc hành nho nh&, giúp b	n làm quen vi Action panel di expert 
mode 
1. T	o mt movie mi 
2. Ch
n key frame 
u tiên (frame s 1) ca layer 1 (mình không dch ch layer = lp 
vì d trùng vi class= lp) 
3. M Action panel (có th dùng phím tt hay vào trong ph
n Window > Action panel 
4. Chuyn sang expert mode (dùng phím tt hày vào trong pop-up menu ca Action 
panel   i) 
5. Vào ch  vit AS 
6. Vit o	n code sau: 
ActionScript 
trace ("I am expert"); 
Khi b	n th movie thì dòng ch "I am expert" s c hin ra trong Output panel, và 
mình s  cp n lnh trace() vào nhng gi ti 
 Gi th 03: Hc cách lp trình, Learning to program 
Lp trình có th coi là khoa h
c và ngh thut. Vì vy lp trình viên gi&i c
n có 2 iu 
kin kin thc v ngôn ng mà h
 dùng và tính sáng t	o, ít khi nào có trng hp ch 
có 1 cách lp trình cho mt  án lm. 
Trong quá trình vit AS, b	n s t	o ra cho riêng mình mt phong thái vit code khá 
%c trng. Có th mi 
u b	n s dùng phong cách vit code trong nhng bài vit này, 
r*i sau ó b	n s t) t) chuyn sang phong cách ca riêng b	n 
Thng thì khái nim v các ngôn ng lp trình u ging nhau, và trong bài này s 
bàn v nhng khái nim lp trình và làm sao áp d'ng nó trong Flash 
Cách suy ngh ca computer 
Tht ra computer dt lm ch0ng bit suy ngh( âu, ch bit làm vic theo mnh lnh 
mt cách không suy ngh(. Vì vy computer không bao gi l.i mà l.i  ngi vit lnh 
sai khin nó. 
Còn AS ch là mt chu i lnh, ch th cho computer, hay úng ra là Flash phi làm 
nhng gì trong môi trng runtime (runtime environment). 
Khi vit AS thì b	n nên t coi mình "ngu" nh computer, và 
c l	i nhng dòng lnh 
AS và ngh( ti kt qu ca vic thi hành lnh ó. Khi t %t mình vào v trí ca 
computer, b	n s oán c script ca b	n s làm nhng gì trong môi trng runtime, 
và b	n có th th#y ra nhng l.i mà b	n vô ý mc phi. Khi mà b	n tr thành din viên 
tuyt vi trong vai computer thì b	n cng tr thành mt lp trình viên tài ba. 
Lnh, hàm, và phép tính 
Lnh (command) là yu t cn bn ca AS  ch th Flash làm mt hành ng c' th. 
Lnh c thi hành tuyt i trong các trng hp kh thi. Ví d' nu nh ta vit 
gotoAndPlay(5)  cho Flash ti frame 5 và chi, nhng nu trong movie không có 
frame 5 thì lnh không th làm c. 
Hàm (function, mình s dùng t) function nhiu hn là hàm) là ph
n tính toán các 
phép tính và cho ra (return) mt kt qu. Ví d' hàm random() s cho ra mt con s 
ng$u nhiên nào ó, hay hàm sqrt() s cho ra giá tr bình phng ca 1 s mà hàm 
nhn c truyn cho. 
Lnh và hàm u có th c truyn cho 1 hay nhiu thông s (parameter, mình s 
dùng t) parameter thay vì thông s), và nhng thông s ó giúp cho hàm và lnh c 
c' th hn. Ví d' gotoAndPlay(5) thì 5 là thông s, nu nh không có thông s này 
thì lnh "gotoAndPlay" s không bit rõ phi nói Flash i âu. cng nh hàm sqrt() 
cng c
n có thông s  cho ra giá tr bình phng ca s #y. 
S khác bit gia hàm và lnh chính là các phép tính. Phép tính thng là nhng d#u 
+, -, *, / hay là phép so sánh . Hàm có phép tính, lnh thì không 
Bin s 
Bin s (parameter) c
n thit trong m
i ngôn ng lp trình vì nó lu tr thông tin v 
mt cái gì ó trong chng trình. Bin s g*m có 2 ph
n: tên và giá tr. +ôi khi b	n 
ch c
n lu tr thông tin trong bin s mt thi gian ngn, ví d' b	n mun Flash thi 
hành 1 s lnh 10 l
n thì b	n c
n m s l
n mà Flash ã thi hành lnh  có th ra 
lnh cho Flash ngng ngay sau khi thi hành xong lnh l
n th 10. Nhng cng có lúc 
b	n c
n phi lu l	i thông tin trong mt thi gian dài hay trong sut quá trình thi 
gian Flash chi. 
Tên ca bin s thng là mt nhóm t), hay cng có th ch n gin là 1 t), hay 1 
ch cái. Thông thng tên ca bin s nên rõ ràng d hiu và nói lên c tính ch#t 
ca thông tin mà bin s ang lu tr. Ví d' nu b	n mun lu tr tên ca ngi dùng 
trong bin s thì b	n nên %t tên bin s ó là userName (mình ngh( %t tên ting Anh 
d hiu hn, vì ting vit không d#u cng d b hiu l
m), b	n có th %t tên bin s 
ó là "n" nhng quá ngn, ngi 
c script ca b	n s khó hiu, nu %t là name thì 
d trùng vi các bin s hay t) khoá khác (_name là mt %c tính ca i tng 
MovieClip) 
Khi vit AS, b	n c
n lu ý vit làm sao cho d hiu và d 
c. Và các lp trình viên 
quy c tên bin s theo quy tc sau: tên bin s luôn vit thng ch 
u tiên, và 
vit hoa ch cái 
u tiên cho các ch k tip, ví d' userName, userLastName, 
userMotherMaidenName v.v. 
Lu ý r"ng ch các ch cái và s mi c dùng  %t tên cho bin s, và luôn bt 
âu tên b"ng ch cái. 
Có nhiu lo	i bin s  lu tr nhiu lo	i thông tin, và ngay m.i lo	i thông tin cng 
có th có nhiu lo	i khác nhau na. Nh s (number) là mt lo	i giá tr ca bin s, và 
di nó còn có các lo	i khác nh s nguyên (integer), s ... không nguyên 
(floating, double). B	n cng có th dùng bin s  cha các chu.i (chu.i g
i tt cho 
chu.i ch cái), chu.i có th ch có 1 ch cái, nhiu ch cái hay là không có gì ht, t#t 
c các chu.i sau ây u hp l: "ablsdfjksl", "a", " ", "". Khi vit mt chu.i thì c
n 
dùng d#u ngo%c kép ("")  bt 
u và kt thúc chu.i. 
Trong các ngôn ng lp trình khác nh Java, C++, hay ngay c ActionScript 2.0 trong 
Flash MX 2004 thì b	n phi xac nh trc lo	i thông tin nào b	n s lu trong bin 
s. Nhng vi ActionScript 1 (trong FlashMX) thì b	n không c
n làm vic này. Ví d' 
bin s userName lúc 
u cha 1 chu.i, nhng sau ó l	i cha 1 s nguyên thì cng 
v$n hp l. 
Ngoài chu.i và s, còn có nhiu lo	i khác na nhng chúng ta s  cp ti vào 
nhng bài sau. 
iu kin 
Trong nhng trng hp chúng ta không bit nên ra lnh cho Flash phi làm gì cho 
thích hp vi t)ng tình hung thì ta có th dùng "iu kin"  ra lnh cho Flash. 
Ví d' nu nh b	n ra lnh cho Flash không cho ngi dùng coi mt o	n phim trong 
Flash nu nh user di 18 tu i, nu user trên 18 tu i thì hãy chi o	n phim #y. 
Trc tiên, Flash s so sánh s tu i ca user vi s 18, nu nh s tu i ca user tho 
mãn iu kin chúng ta %t ra thì Flash s có 1 giá tr true t) phép so sánh trên, và 
ngc l	i s là false +iu kin s luôn luôn là úng (true) hay sai (false). Mt giá tr 
ch có úng hay sai thì c g
i là boolean. Sau khi thc hin phép so sánh và có 
c kt qu t) phép so sánh trên, Flash s ch
n mt trong 2 gii pháp do chúng ta 
a ra cho t)ng trng hp. 
+ôi khi chúng ta c
n có nhiu iu kin hn ch là n gin "true" hay "false", ví d' 
nh b	n mun Flash chi o	n phim A cho ng)i trên 18 tu i, di 18 nhng trên 13 
thì chi o	n phim B, và nhng ai di 13 thì chi o	n phim C. 
Vòng lp 
Con ngi làm ra computer vì li không mun làm nhiu, mà bán cái cho 
computer. Nh#t là phi làm i làm l	i 1 vic nào ó thì càng nhàm chán. Vì vy vòng 
l%p (loop) là mt yu t quan tr
ng trong các ngôn ng lp trình. AS cng vy, b	n có 
th dùng vòng l%p trong script. 
Trong vòng l%p, "iu kin" r#t quan tr
ng. M
i vòng l%p c
n có im bt 
u và 
im d)ng và mt iu kin  báo hiu im d)ng ca vòng l%p. Ví d' nh b	n 
mun cho vòng l%p ch	y 10 l
n thì s có 1 bin s dùng  m vòng l%p, bt 
u t) 
0, M.i vòng l%p ch	y thì bin s này s tng thêm 1. Khi ti 9 thì vòng l%p s d)ng 
l	i. Sau ây minh ho	 ca vòng l%p này: 
1. Mt s lnh trc vòng l%p 
2. Bt 
u vòng l%p, set bin s counter = 0 
3. Làm mt s lnh trong vòng l%p 
4. Tng bin s counter +=1 
5. Nu bin s counter nh& hn 9, tr l	i bc th 3 
6. Ra kh&i vòng l%p, và tip t'c chng trình. 
/ ây chúng ta bt d
u bin s counter = 0 vì quy c thông thng các ngôn ng lp 
trình u bt 
u vòng l%p  0. 
Mt im áng lu ý ca vòng l%p là iu kin c xét trc khi thc hin các lnh 
trong vòng l%p. Trong vài trng hp, iu kin s c xét sau khi thc hin các 
lnh trong vòng l%p. Chúng ta cng có th ngng vòng l%p trc im d)ng ca nó, và 
iu này s c  cp ti vào bài k tip 
Làm nhng 
iu không tng 
Lnh, hàm, phép tính, bin s, thông s, iu kin, vòng l%p là nhng ph
n cn bn 
trong ngôn ng l%p trình, và cái này thì ai cng bit nhng làm sao phi hp l	i thành 
mt chng trình hoàn ho mi là cái khó. 
Chng trình n gin ch là mt tp hp lnh cho computer  gii quyt 1 v#n  
nào ó. Vì vy trc khi vit 1 chng trình chúng ta c
n phi xác nh "v#n " c
n 
phi gii quyt. Ví d' thc t  ngoài i, m b	n nh b	n ra ch mua gà. Nhng ch 
n gin nói ra ch mua gà thì cha  vì bit mua gà sng hay gà làm r*i. nu mua 
gà sng thì mua lo	i nào v.v. +ó là cha nói ti mua gà  ch nào, giá c ra sao v.v. 
Nu nh b	n m nói rõ là ra ch bn thành, mua 1 con gà mái d
u, n%ng khong 2 kg, 
vi giá khong 10000 thì tht là d dàng cho b	n phi không? 
Bit c v#n  mua gà r*i thì tìm cách mua gà. B	n phi "lên k ho	ch", nên nh 
b	n ch hay i taxi ra ch bn thành. Nu i taxi i hãng nào, tìm s phone  g
i, 
v.v. còn nh b	n ch i thì nh tên nào. R*i nên m%c qu
n áo nào i ch. Ra n ch 
thì phi m%c c làm sao, tr tin m%t hay ghi s n. B	n th#y không, t) mt chuyn 
mua gà n gin vy mà có th tn c ngày tri  lên chng trình 
Vit AS, b	n c
n phi lu ý ti t#t c m
i vic dù nh& cách m#y  cho Flash có th 
làm úng theo nh ý b	n trong m
i tình hung. Các chng trình có bug không phi 
vì ngi vit d1 mà vì cha ngh( ti ht m
i tình hung thôi. 
Tóm l	i, iu quan tr
ng trong lp trình là kh n0ng phân tích mt v#n  chính thành 
nhiu v#n  nh& cho ti khi không còn nh& hn na, và sau ó xây dng chng 
trình t) gii quyy các v#n  nh& lên d
n cho ti v#n  chính. 
Vit mã hoàn chnh 
B
 (bug) n gin là l.i ca chng trình mà b	n t	o ra. Bug có th ch là nhng l.i 
cú pháp n gin, hay là nhng l.i phc t	p do cách b	n gii quyt v#n  trong môi 
trng runtime. 
+ tránh có bug trong script ca b	n thì b	n nên tn nhiu thì gi vào giai o	n phân 
tích, thit k chng trình cho script ca b	n. Kim tra các o	n code nhiu l
n, và 
óng vai "computer" cho tht ging, )ng suy ngh(, mà thi hành các lnh trong script 
ca b	n. Vit t)ng o	n code nh& r*i ráp l	i vi nhau (vì vy mà lp trình theo hng 
i tng c s d'ng nhiu nh#t) 
Nu script ca b	n có bug thì )ng th mà nn lòng, vì không có chng trình nào do 
con ngi làm ra mà không có bug c. Vì vy b	n )ng c gng viêt code sao cho 
tuyt ho không có l.i. Nu có bug thì b	n dit bug thôi B	n có th chu!n b 
"chin #u" vi bug b"ng cách vit code sao cho d hiu và d 
c, vit nhiu chú 
thích cho các o	n mã. +ôi khi dit bug (debug) r#t n gin nhng có khi cng r#t 
kho mà bit bug  âu  dit. Flash có kèm theo vài công c' giúp b	n debug d dàng 
hn, chúng ta s nói ti các công c' này trong bài ti. 
 Gi th 04: Viêt code trong Flash, Writing code in Flash 
Khi b	n vit script, b	n s dùng t#t c nhng t) khóa, và ký hiu v.v. Vy trc tiên 
chúng ta s phân tích mt o	n script sau ây. +o	n script này gn vào 1 button. 
ActionScript 
on (press) { 
 var myVariable = 7; 
 var myOtherVariable = "Macromedia"; 
 for (var i=0; i<10; i++) { 
 trace(i); 
 if (myVariable + 3 == 5) { 
 trace(myOtherVariable); 
 } 
 } 
} 
Dòng 
u tiên xác nh nhng o	n code sau ó c kích ho	t khi mà user nh#n vào 
nút. hàm on(press) ch có th s d'ng trong vào trong nút mà thôi. Ngoài ra b	n có 
th dùng on(release) nu nh b	n mun kích ho	t o	n mã trên sau khi user nh#n nút, 
và buông tay. 
D#u ngo%c móc {}  
u và cui o	n code, gói o	n code ó vào làm mt, và u 
c kích ho	t khi nh#n nút. Các b	n lu ý th#y o	n code c vit vào trong  cho 
d nhn th#y c o	n code này ph' thuc vào on(press). Các b	n nên vit lùi vào 
trong cho nhng o	n code ph' thuc vào 1 lnh hay hàm nào ó. 
Dòng th hai lp ra bin s (mình s vit tt là var nhe) tên myVariable, và %t giá tr 
b"ng 7 cho nó. tng t hàng k tip lp ra var tên là myOtherVariable và cho giá tr 
ca nó là "Macrmedia". C 2 câu này c kt thúc b"ng d#u ch#m ph!y ; 
Dòng th 4 chính là vòng l%p (mình s g
i là loop cho tin nhe) for (s nhc ti các 
lo	i loop  phía di) và các iu kin ca loop này. Nó s l%p 10 l
n vi iu kin 
bt 
u là i=0 và nó s tng thêm 1 cho m.i l
n l%p cho ti khi nó lên ti 9. Tng t 
nh on(press), for loop cng có o	n code cho riêng nó, và c b
c quanh b"ng { } 
và o	n code trong ó ch kích ho	t khi mà các iu kin ca for loop c th&a mãn. 
Dòng th 5 là lnh trace(), lnh này ch vit thông tin ra  output window trong lúc 
b	n làm vic vi Flash, user s không th#y c. K tip là iu kin, if là t) khoá 
trong Flash, và nó s kim tra kt qu ca phép so sánh myVariable + 3 ==5. Nu mà 
kt qu là úng thì nó s kích ho	t lnh trace  trong, và s vit ra output window giá 
tr ca myOtherVariable 
Vy là b	n ã th#y mt o	n script hoàn chnh b"ng AS r*i. Tip theo chúng ta s nói 
n vài ph
n khác ca AS. 
Output window 
/ trên chúng ta có nhc ti output window, mà không nói rõ là gì. Output window là 
mt window trong software Flash, và ch xu#t hin khi mà b	n chy th movie. Nu 
Flash compile movie cho b	n và phát hin ra l.i thì Flash s vit ra các output 
window này. Trong khi ch	y th movie, thì lnh trace() mi có th vit các thông tin 
ra output window. Output window r#t quan tr
ng trong vit "dit b
", dùng nó chung 
vi trace b	n có th quan sát các thông s, bin s, các i tng, thuc tính i 
tng .v.v 
Trong lúc h
c AS, b	n có th vit mt 
an script ngn không làm gì c nhng ch  
vit thông tin ra output window, nh o	n code trên. 
 Thc hành: vit thông tin ra output windown 
Cách tt nh#t  hiu rõ chc nng ca output window là s d'ng nó. Bây gi mình s 
vit mt o	n code ngn gi thôi tin ra output window nhe. 
1. T	o mt file mi 
2. Ch
n frame 
u tiên ca movie, m Action panel. Chnh kích thc cho action 
panel  ln  vit, và nh dùng expert mode 
3. Kích chut vào ph
n vit script và vit câu sau: trace("hello world"); 
4. Ch	y th movie (Control + Enter) 
5. B	n th#y gì  output window? (Nu output window ca b	n cha m thì hãy nh#n 
F2) 
Ging nh action panel, output window có 1 cái pop-up menu nho nh&  trên góc 
phi. B	n có th dùng nó  copy, xoá hay save ni dung ca output window hay có 
th tìm kim ch, v.v. Ngoài ra, pop-up menu này có ph
n cho b	n chnh ch  "dit 
b
", b	n có th ch
n không c
n output window in ra các l.i (none), hay ch in l.i 
(error), hay ch in cnh báo (error) và cui cùng là in ra chi tit các l.i hay cnh báo 
(verbose) 
Bin s cc b và toàn b 
/ trong gi th 3, chúng ta có nhc n variable (bin s) dùng  lu tr thông tin. 
Và s d'ng variable trong AS r#t d dàng. B	n ch c
n #n nh giá tr cho variable. Ví 
d': myVariable = 7. Chúng ta t	o variable có tên là myVariable và #n nh 7 là giá tr 
cho nó. (b	n có th %t tên cho variable là b#t c gì b	n muôn) 
Bây gi b	n có th th vit o	n code sau: 
ActionScript 
var1= 7; 
var2= "hello world"; 
trace ("var1: " + var1+ " /var2: " + var2); 
Khi b	n ch	y th movie thì output window s có hàng ch sau: var1: 7 /var2: hello 
world Vì s 7 và "hello world" c cha trong var1 và var2 s c in ra. 
Variable có 2 lo	i, local và global. Global variable (bin s toàn b) thì b	n có th 
truy cp giá tr ca nó  b#t c ni nào trong movie. T	o global variable không òi 
h&i mt b	n phi làm mt cái gì %c bit c, b	n có th dùng nó nh cách trên, và 
Flash t ng bin nó thành global variable. Flash movie dùng h thng level, và 
timeline ca movie chính là root leve (gc), còn các movie clip cng chính là mt 
Flash movie nh&  trong Flash movie ln. Các hình nh, script  trong mt movie clip 
là 1 level th#p hn root level. 
Local variable (bin s c'c b), khác vi global variable, local variable ch có tr 
truy cp trong cùng mt o	n code, hay trong cùng mt timeline. Khi dùng local 
variable thì khi ra kh&i timeline hay o	n code ó thì Flash s xoá local variable ra 
kh&i b nh. Mun t	o local variable thì dùng t) khoá var trc tên ca local 
variable, ví d': var myLocal = "This is local"; B	n ch c
n dùng t) khoá var 1 l
n 
thôi, nhng l
n dùng sau ó thì ch c
n dùng tên ca local variable thôi. Ví d' o	n 
code: 
ActionScript 
var myLocal = 9; 
myLocal = 11; 
trace(myLocal); 
Phép so sánh và các phép tính 
So sánh 2 giá tr trong AS r#t n gin, dùng các ký hiu toán h
c nh , = 
Khi #n nh giá tr thì dùng d#u =, và  cho khác bit thì khi so sánh dùng ==. +o	n 
code sau xét coi giá tr ca a có b"ng 7 không, và in kt qu ra output window. Và khi 
test o	n code sau, b	n s th#y true  output window 
ActionScript 
var a = 7; 
trace(a == 7); 
Nu b	n dùng ln = vi == thì s b l.i  runtime ch Flash s không có th tìm c 
l.i này cho b	n. 
B	n có th dùng ==  so sánh 2 chu.i m$u t: 
ActionScript 
var myString = "Hello World."; 
trace(myString == "Hello World."); 
trace(myString == "hello world."); 
Khi b	n test o	n code trên thì b	n s có c "true" và "false"  output window, vì 
l
n so sánh th nh#t thì b"ng nhau, nhng l
n th hai thì không vì ch H và h khác 
nhau. 
Nu b	n mun th coi 2 giá tr có khác nhau không thì dùng ky hiu != 
ActionScript 
var a = 7; 
trace(a != 9); 
trace(a != 7); 
Hàm trace 
u tiên s cho ra "true" vì 7 khác 9, và cái th hai thì s cho ra "false" 
Nu b	n mun th giá tr coi ln hn hay nh& hn thì dùng > và < 
ActionScript 
var a = 7; 
trace(a < 8); 
trace(a > 6); 
trace(a < 1); 
+o	n code trên s cho ra "true", "true" và "false" trong output window vì "a" qu tht 
nh& hn 8 và ln 6, nhng không nh& hn 1. 
Nu b	n mun th giá tr coi ln hn hay b"ng nhau ho%c là nh& hn hay b"ng nhau 
thì dùng ký hiu >= và <= 
ActionScript 
var a = 7; 
trace(a <= 9); 
trace(a >= 5); 
trace(a >= 7); 
+o	n code trên s cho ra 3 kt qu "true" c. 
B	n có th thay  i giá tr ca variable vi các phép tính n gin nh cng (+), tr) (-
), nhân (*), chia (/). Ví d' mun thêm 4 vào giá tr ca a thì vit a = a + 4. AS cng có 
cách vit tt nh Java, C++ cho vì d' này, a += 4 Nu b	n mun thêm 1 vào a thì b	n 
có th vit nh 2 cách trên a = a +1 và a += 1 và còn cách th 3 a++ . D#u ++ ch làm 
tng thêm 1 cho giá tr ó thôi. Có 2 cách dùng ++, 1 là  sau variable nh cách trên, 
và 1 cách thì  trc variable. Bây gi th o	n code sau: 
ActionScript 
var a = 7; 
trace(a++); 
trace(a); 
/ output window b	n s th#y 7 r*i mi ti 8. / dòng th 2, hàm trace s cho ra giá tr 
ca a trc r*i mi tng giá tr ca a lên thêm 1. Bây gi xem ví d' khác: 
ActionScript 
var a = 7; 
trace(++a); 
trace(a); 
/ output window b	n s th#y 8 và 8. / dòng th 2 ca ví d' này, hàm trace s tng 
giá tr ca a trc r*i mi cho ra giá tr ca a. Tng t nh ++, AS cng có cách vit 
tt cho giãm giá tr ca variable là d#u -, -=, =- và --. Phép tính nhân và chia thì ch có 
*, *=, /, /= thôi. 
iu kin 
Trong AS và các ngôn ng khác, if ... else chính là các t) khoá ca iu kin. Ting 
vit có ngh(a là "nu ... nu không". T) khoá if dùng kt qu ca s so sánh nào ó  
i ti quyt nh kích ho	t mt o	n code. +o	n code sau s so sánh giá tr ca 
variable a vi 7, nu úng thì Flash s chi  frame 10 
ActionScript 
if (a == 7) { 
 gotoAndPlay(10); 
} 
T) khoá if luôn bt 
u cho 1 iu kin và tip theo s là s so sánh. Luôn %t code so 
sánh  gia ngo%c n (). T#t c các code c kích ho	t nu iu kin c tho 
mãn s  trong âu ngo%c móc {}. 
T) khoá else b sung cho if trong trng hp b	n mun thc hin mt o	n code nu 
iu kin ca if không c th&a mãn. Ví d': 
ActionScript 
if (a == 7) { 
 gotoAndPlay(10); 
} else { 
 gotoAndPlay(15); 
} 
Nu trng hp c
n th&a mãn nhiu iu kin thì có th dùng cú pháp if .... else if ... 
else. B	n có th có bao nhiu cái else if cng c. 
Nãy gi ta chi nói ti iu kin da trên 1 s so sánh, nhng AS cng cho phép dùng 
so sánh a hp (compound comparision). Trong iu kin ca Flash ta có th dùng 
nhiu so sánh  i ti mt kt qu chính xác hn. Ví d' nu nh a ln 10 và a phi 
nh& hn 15 thì ra lnh cho Flash chi  frame 10. 
ActionScript 
if ((a > 10) and (a < 15)) { 
 gotoAndPlay(10); 
} 
T) khoá and (còn có th c vit là &&) yêu c
u phi tho mãn iu kin ca 2 
phép so sánh. B	n cng có th dùng t) khoá or (còn có th c vit là ||)nu nh ch 
c
n tho mãn 1 iu kin trong 2 phép so sánh thôi. 
ActionScript 
if ((a > 10) or (a < 15)) { 
 gotoAndPlay(10); 
} 
Vòng lp 
Cú pháp ca vòng l%p (loop) thì hi rc ri hn so vi cú pháp ca iu kiên if. nhng 
nó tng t nh C, C++, Java. G*m có 3 lo	i vòng l%p chính là for loop, while loop 
và do-while loop 
for loop c coi là vòng l%p chính vi t) khoá for và cú pháp ca nó nhìn nh sau: 
ActionScript 
for(var i=0;i<10;i++) { 
 trace(i); 
} 
Nu b	n cho ch	y o	n code trên thì b	n s có c t) s 0 ti 9  output window. 
for loop tng giá tr ca variable i trong sut quá trình thc hin loop. +iu kin ca 
for loop có 3 ph
n chính, và c cách bit bi d#u ch
m ph!y ( . +
u tiên là iu 
kin bt 
u vi vic t	o local variable cho for loop var i=0. ph
n này for loop ch 
thc hin có 1 l
n duy nh#t lúc bt âu. Ph
n th hai là iu kin chính ca for loop 
i<10, s c thc hin  m.i vòng l%p. Nu iu kin này tho mãn thì mi tip t'c 
vòng l%p. Và ph
n cui cùng là phép tính cho s tip ni ca for loop  m.i vòng l%p, 
 ây là i++ nên giá tr ca i s c tng sau m.i vòng l%p trc khi vòng l%p mi 
bt 
u. 3 ph
n này u c b& vào trong ngo%c n (). Còn nhng code thc hin 
trong m.i vòng l%p thì  trong ngo%c móc {}. Bây gi chúng ta gi làm computer và 
ch	y cái for loop này. 
1. T	o local variable và #n nh giá tr cho nó b"ng 0 
2. Kim tra giá tr ca i có nh& hn 10 không, nu nh& hn 10 thì vòng l%p thc 
hin các code  trong {}, còn không thì ti bc th 5 
3. hàm trace vit giá tr ca i  output window 
4. cng 1 vào giá tr ca i, và tr v bc th 1 
5. ra kh&i for loop 
Ti bc th 5 thì giá tr ca i s b"ng 10 
while loop vi t) khoá while có cú pháp nhìn tng t nh sau: 
ActionScript 
while (a > 0) { 
 // code thc hin trong while loop 
} 
+n gin hn for loop, while loop tng t nh iu kin if n gin, thc hin các 
code trong vòng l%p nu iu kin ca while loop c thoã mãn, vì vy b	n d dàng 
r*i vào trng hp vòng l%p vô h	n, và d$n n tình tr	ng treo máy. Trong o	n code 
trên, b	n phi làm th nào  cho co 1 lúc a s nh& hay b"ng 0  cho vòng l%p ng)ng 
l	i. 
Ging nh while loop, do-while loop có cú pháp nhìn nh sau: 
ActionScript 
do { 
 // code thc hin trong do-while loop 
} while (a > 0); 
Ch khác vi while loop là do-while loop thc hin code trong vòng l%p trc r*i mi 
kim tra iu kin. (while loop kim tra iu kin r*i mi ch	y code trong vòng l%p) 
Mun phá ra kh&i quá trình t hành ca 3 lo	i loop trên thì dùng lnh break và 
continue. Lnh break s phá ra kh&i loop hoàn toàn trong khi lnh continue thì ch 
phá ra kh&i vòng l%p hin t	i và bt 
u vòng l%p mi. T	o ra mt ví d' c' th r#t 
phc t	p, nên chúng ta t	m khoan bàn ti 2 lnh này cho ti các bài sau. 
Hàm 
Cho ti bây gi các script ca chúng ta u c vit vào frame 
u tiên ca moive, 
cách này ch tt cho nhng chng trình n gin, nhng nu mà chng trình tr 
nên phc t	p thì ây không phi là cách. Hàm (function) s cho phép chúng ta c#u t	o 
và qun lý code d dàng hn trong các chng trình phc t	p. Di ây là mt 
function n gin: 
ActionScript 
function myFunction(num) { 
 var newNum = num + 3; 
 return newNum; 
} 
Fuction bt 
u b"ng t) khoá function, tên ca function có th là b#t c ch gì nh 
cách b	n %t tên cho variable, nhng lu ý cách %t tên cho fuction làm sao  ngi 
ta 
c tên có th bit c chc nng ca function. Theo sau tên ca function s là 
thông s (parameter, cho ng"n mình s g
i thông s là param trong các bài vit này) 
c  trong ngo%c n (). Function có th co 1 
hay nhiu param hay không c
n param cng c. Param ch0ng qua ch la variable 
c dùng trong function, nhng variable này c truyn t ngoài vào khi function 
c g
i. +o	n code c function thc hin s n"m gia ngo%c móc {}. Bây gi 
chúng ta phân tích o	n code trên. Khi function myFunction c g
i, thì param num 
c truyn vào, sau ó function myFunction t	o ra mt local variable tên là 
newNum, và #n nh giá tr ca newNum b"ng giá tr ca param num cng vi 3. Sau 
ó myFunction dùng lnh return  #n nh giá tr ca newNum là kt qu ca 
myFunction. Lnh return là lnh %c bit ch c dùng  trong function mà thôi. 
Lnh này s kt thúc function. 
+ s dùng function này, dùng nó nh mt lnh hay hàm ca AS, ging nh là trace() 
vy ó. +ây là ví d': var a= myFunction(7);. Trc tiên t	o mt local var r*i sau #n 
nh giá tr ca local var này b"ng kt qu ca myFunction vi param là 7, và cui 
cùng thi local var này s b"ng 10. 
Mt trong u im ca function là b	n có th tái s d'ng. Di ây là hàng code 
dùng chung 1 fuction và cho 3 kt qu khác nhau 
ActionScript 
trace(myFunction(7)); 
trace(myFunction(13)); 
trace(myFunction(2)); 
Khi ch	y o	n code này thì output windown s là 10, 16 và 5. Ví có th tái s d'ng 
nên chúng ta ch c
n thay  i code  trong myFunction thì t#t c các kt qa có c 
t) g
i function này cng thay  i theo luôn. 
Dot Syntax 
Mt iu b	n s th#y r#t nhiu trong quá trình h
c AS là dot syntax (h.ng bit dch 
sao bây gi) Dot syntax là phng pháp c dùng trong lp trình theo hng i 
tng (oob: object oriented programming). 
+ây là mt ví d' ca dot syntax. Nu b	n mun l#y cn bình phng ca mt s, và 
trong Flash ã có s2n function  làm chuyn này r*i, và hàm này thuc v i tng 
toán, tên là Math. Vy mun g
i function này thì trc tiên b	n phi g
i tên i tng 
mà fucntion này trc thuc, ó là Math, theo sau ó là d#u ch#m (dot), và r*i ti tên 
ca function ó là sqrt. Cách vit nh sau: 
ActionScript 
var a = Math.sqrt(4); 
Mt cách dùng dot syntax khác là  truy cp %c tính hay variable ca mt i 
tng, nh là movie clip. 
ActionScript 
var a = myClip._x; 
var a = myClip.myVariable; 
Chúng ta s  cp n i tng Math và MovieClip trong các bài ti, còn bây gi 
thì quan tr
ng là b	n nm c khái nim v dot syntax. 
Chú gi	i 
Mt trong c tính c
n có ca lp trình viên là vit code làm sao cho d 
c và d 
hiu. Nhng nhiu khi dù khi vit có c gng cách m#y thì nhng o	n code ó v$n 
khó hiu cho ngi xem, vì vy mi c
n nhng li chú gii. Mun chú gii trong AS 
thì ch c
n dùng ký hiu// trc câu chú gii ó. Nu chú gii nhiu hn vài dòng thì 
có th dùng kiu sau/* ..... chú gi	i ....*/. 
ActionScript 
/* 
 chú gii: 
 cng 2 cho a 
 cng 2 cho b 
*/ 
a += 2; // add 2 a 
// add 2 to b 
b += 2; 
Debugging 
Thng thì thi gian dit b
 tn g
n 1/3 thi gian phát trin chng trình. Nu b	n 
nm vng c "nghê thut" dit b
 thì b	n s rút ngn c r#t nhiu thi gian. Có 3 
cách dit b
 hu hin là: phân tích, vit message ra output window và dùng AS 
debugger. 
Vi các lo	i b
 n gin thì phân tích các o	n code s giúp b	n bt trúng con b
 c
n 
dit. Dùng output window  theo dõi các i tng, vòng l%p, iu kin, và nh vào 
ó b	n có th bit c ch nào trong code có v#n , cui cùng là dùng AS debugger 
có s0n trong Flash. Debugger window cho phép b	n có th coi ht t#t c moi thành 
ph
n trong movie ca b	n, cho phép b	n dùng AS b#t ch khi nào và ch nào b	n 
mun. Tham kho thêm ph
n tr giúp ca Flash  bit cách dùng debugger. 
 Gi th 05: iu khin lung movie, Control the flow of the movie 
S d'ng AScript là cách iu khin movie n gn nh#t, nhung l	i hiu qu nh#t. 
Chng này b	n s h
c cách : 
 làm sao  d)ng Movie trên frame 
 Sao  nhy t) frame này n frame kia 
 t	o nút cho phép iu khin movie 
 t	o mt slide show n gin 
 t	o mt biu din 
y .. 
Dng movie 
+ây là câu lnh stop: 
ActionScript 
stop(); 
Khi b	n dùng câu lnh này , movie ch t	m d)ng  frame mà b	n %t câu lnh. Các 
animation bên trong movieClip và các file * h
a v$n tip t'c ch	y trên frame ó. 
Nhng animation ca time line s b d)ng. 
+ cho animation ca timeline tip t'c ch	y, ta s d'ng mt lênh n gin ó là lnh 
play.. ta s bàn n nó sau. 
Ví d' 
T	i frame 1, b	n hãy th mt text box và vit vào ó Ch A 
T	i frame 2, b	n hãy th mt text box và vit vào ó Ch B 
T	i frame 3, b	n hãy th mt text box và vit vào ó Ch C 
Bây gi b	n hay %t câu lnh stop(); vào Frame 2, b	n se th#y ch A xu#t hin r#t 
nhanh r*i n ch B, nhng ch C s ko th#y xu#t hin,, +n gin vì câu lnh stop() 
ã d)ng animation ca timeline t	i Frame 2. 
Nh	y t frame này 
n frame kia 
Mt câu lnh c bn ca AS là câu lnh gotoAndPlay. Câu lnh này giúp b	n có th 
nhy t) frame này n frame mà b	n mun. B	n có th s d'ng s th t ca frame 
hay là tên ca frame 
ActionScript 
gotoAndPlay(7); 
gotoAndPlay(20); 
gotoAndPlay("my frame label") 
b	n có th s d'ng nhiu movies , hay còn g
i là cnh(scene) . Nu Câu lnh 
gotoAndPlay ch có mt tham s, thì tham s ó là frame. Nhng nu có 2 tham s,thì 
tham s 
u tin là tên ca scene, còn tham ss th 2 là s th t ca frame hay tên 
frame. 
ActionScript 
gotoAndPlay("My Scene","My Frame"); 
Khi b	n dùng gotoandPlay,movies s nhy n frame mà b	n g
i , và tip t'c ch	y, 
nhng nu b	n mun nó nhy n frame và d)ng l	i, b	n co th s d'ng gotoAndStop 
. Câu lnh này dùng y ht nh gotoAndPlay, vi la ch
n 1 tham s hay 2 tham s. 
Ngoài ra có thêm 2 câu lnh cng h
at ng ging gotoAndStop , ó là nextFrame 
and prevFrame 
+ hiu rõ hn v các câu lnh này, ta s i tip ph
n sau... 
To nút (button) 
Nút là mt trong 3 biu tng (symbol) chính trong Flash, 2 cái kia là movie cilps và 
hình 
T	o mt button 
Có nhiu cách  t	o nút. Mt trong nhng cách ó là ch
n Insert, New Symbol t) 
Menu. Mt hp tho	i s hin lên và h&i b	n %t tên và la ch
n biu tng ca b	n là 
lo	i Movie clip, button, hay * h
a. B	n hãy ch
n Button. 
Bây gi trong ca s chính ca Flash s thay  i, timeline ca button s thay th 
timeline ca movie chính. Có 4 frames trong timeLine ca button. Chúng có tên là 
Up, Over, Down, HIt. CHúng th hin 3 tr	ng thái ca button, và vùng h
at ng ca 
button. 
 Nu b	n %t mt * h
a, ch0ng h	n là mt vòng tròn, trong frame 
u tiên(UP) và ko 
có gì trong 3 frame sau, tr	ng thái Over và Down ca button s ging nh tr	ng thái 
ca Up. VÙng ho	t ng ca button cng tng t nh vy. 
M%t khác , b	n có th t	o các hiu ng khác nhau cho button ca b	n. VÍ d' nu b	n 
 i m
u ca vòng tròn là màu xanh  Frame OVER,có ngh(a là khi b	n a chut qua 
button, button s chuyn sang màu xanh. 
Khi b	n t	o xong 1 button, b	n tr lai movie timeline chính. Và button ca b	n ã s2n 
sàng trong th vin ca FLash. B	n ch viêc b#m F11, tìm button ca b	n và kéo th 
nó vào ni nào b	n c
n trên ca s thit k. 
T	o script cho button 
+ %t script cho button, 
u tiên hãy ch
m mt button. Sau ó vào ca s Action 
b"ng cách b#m chut phi lên button và ch
n Action t) menu xu#t hin. 
Hãy Chc chn r"ng ca s Action ã c %t  ch 
 Expert. B	n có th kim tra 
bng mt popup menu  góc trên cùng bên phi ca ca s . 
+ây là mt o	n mã thông thng cho button. B	n có th %t nó trong ca s mã và 
sau ó kim tra movie xem nó h
at ng th nào. 
ActionScript 
on (release) { 
 trace("You clicked the button!") 
} 
on : là mt keyword, c g
i ra  x lí mt s kin 
Release : Là mt s kin, khi ngi s d'ng click vào button và nh chut ra. +o	n 
mã trace s c thc thi. 
Ngoài ra Release có th thay th b"ng s kin PRESS, s kin này ch khác Release  
ch. khi ngi s d'ng b#m vào button, o	n mã trace s c thc thi mà ko c
n phi 
th chut ra. 
Trace : là in ra màn hình dòng ch YOU CLICKED THE BUTTON. 
Thc Hành: To mt Slide Show 
n gi	n... 
Có l ko phi din t nhiu v Slide Show, các b	n hãy tng tng giông Power 
Point.. Khi chúng ta b#m chut, các slide s chuyn sang slide khác. 
1. M Flash, ch
n New 
2. Trong Layer 1, t) Frame 1 n Frame 4, b	n hãy t các biu tng hay hình nh, 
text khác nhau  phân bit c các frame 
3. Sau ó b	n t	o mt layer mi, hãy %t mt button lên layer này.Tip theo b	n ch
n 
Frame 4 ca layer 2, và b#m F6. +iu này m bo cho button ca b	n s xu#t hin 
trong t#t c các Frame ca Layer 1. 
Bây gi copy o	n mã sau vào button ca b	n, chú ý nh là copy vào action ca 
button, ch ko phi vào b#t kì frame nào 
ActionScript 
on (release) { 
 nextFrame(); 
} 
Cui cùng ch
n Frame 1 Layer 1 action và chèn o	n code sau 
ActionScript 
stop(); 
Hãy ch	y th slide show ca b	n = cách b#m Ctrl Enter. 
5) Xây dng mt presentation n gin: 
Presentation này s d'ng nguyên tc giông ht nh ví d' Slide show  trên, các b	n 
hay down load file FLA  xem .. easy 
 Gi th 06: iu khin movie clip, Controlling Movie Clips 
6th Hour iu khin movie clip 
B	n s h
c 
1- ra lnh cho movie clip 
2-T	o playback cho animation 
3-TÌm hiu ích(target) ca movie clip 
4-Tp vit code cho movie clip 
5-T	o movie clip có th ch	y lùi l	i. 
1) Ra lnh cho movie clip : 
Mt movie chính có th r#t n gin. NÓ ch c
n 1 frame và mt movie clip. Nhng 
bn thân movie clip l	i có th là mt animation dài. Vic này d dàng thc hin mà ko 
c
n Actioncript. 
+ iu khin c movie, b	n phi %t tên cho movie clip. Chú ý r"ng mt movies 
clip có 2 tên, mt tên s d'ng cho timeline . Mt tên s d'ng cho actioncript. 2 tên 
này có th %t trùng tên nhau ho%c khác tên nhau. 
Làm sao  %t tên cho movie clip : 
Ch
n insert -----> New Symbol (ho%c b#m Ctrl F8), %t tên cho movies clip 
(nh la ch
n option movies clip, ch ko phi là button hay graphic) 
Tên này c s d'ng cho timeline. vd: gear animation 
Th movie gear animation vào ca s thit k.. PHía di ca s properties, ban s 
th#y box instance name.. +%t tên cho movie 
tên này c s d'ng cho Action script , vd : gears 
và nh vy, khi b	n lp trình , tên s d'ng là gears , ch ko phi gear animation. 
b	n có th s d'ng d#u ch#m  a ra các lênh cho movie ca b	n. ví d' 
ActionScript 
gears.stop(); 
gears.gotoAndStop(5); 
Nh r"ng movie clip luôn có level. Nu o	n mã c %t trên chính movieclip, b	n 
ko c
n s d'ng tên movies, ch c
n gotoAndStop();. Nu b	n %t c tên movie vào, 
Flash s tìm movie ca b	n t) timeline chính.. Tc là s phi qua 2 level. ---> chm 
hn chút. 
2)Animation Playback Controller 
Hãy down load source code t) trên ph
n download và xem. V c bn, chúng ta làm 
các vic sau: 
- T	o mt Movie ,%t tên là gear animation 
- +%t instance name là gear(hng d$n  trên) 
- Frame 
u tiên ca time line chính, chèn code 
ActionScript 
gears.stop(); 
-T	o các button Advance, Previous, Play, Stop, and Rewind 
-Code cho các button l
n lt là 
Advance 
ActionScript 
on (release) { 
 gears.nextFrame(); 
} 
Previous 
ActionScript 
on (release) { 
 gears.prevFrame(); 
} 
Play 
ActionScript 
on (release) { 
 gears.play(); 
} 
Stop 
ActionScript 
on (release) { 
 gears.stop(); 
} 
Rewind 
ActionScript 
on (release) { 
 gears.gotoAndStop (1); 
} 
3) Target mt movie 
Level c bn 
u tiên ca Flash là time line chính(Level 0). Nu b	n mun ra lnh 
cho time line này, b	n dùng code sau 
_root.gotoAndStop(); 
thm chí nu b	n %t code  time line chính, b	n ko c
n _root. Ch c
n 
gotoAndStop(); 
Gi s nu b	n có mt movie trên time line, tc là b	n có mt level sâu hn(level 1). 
Nu b	n t) time line chính, mun goi movie gears , b	n phi dùng câu lnh 
gears.gotoAndStop(7); 
_root["gears"].gotoAndStop(7); 
this["gears"].gotoAndStop(7); 
C 3 cách trên u ging nhau.. Tuy nhiên this có ngh(a là level hin hành. VÍ d' trên, 
level hin hành ca this là level 0. Nhng nu code %t trong movie, level hin hành 
s là level 1. B	n phi chú ý. 
Gi s b	n có mt movie khác bên trong movie, tc là b	n có level 2. Nu b	n mun 
t) level 1 g
i n level 2, b	n phi dùng _parent. 
Parent dùng ging nh root, nhng khác  ch., nó c g
i t) level  trên. Còn root 
c g
i t) level 0 (tc là level gc). 
Thun li t) vic s d'ng root, this là b	n có th gán bin cho movie clips 
ActionScript 
var whichClipToUse = "gears"; 
this[whichClipToUse].stop(); 
Thun li ca vc s d'ng this nhiu hn root  ch. , ko phi lúc nào m
i th cng 
xy ra  time line chính, ôi khi ta ch mun nó xy ra  mt level nh#t nh. Bi vy 
this là cách tt nh#t  goi level ca mt movie. Tuy nhiên trong nhng trng hp 
n gin, hay nh#t là c %t tên cho movies. 
4) Mã cho movie clip 
Chúng ta ã bàn v button  trên, vy v c bn movie clip script cng ging button, 
ó là 
ActionScript 
onClipEvent (load) { 
 trace("This clip has been loaded."); 
} 
onClipEvent : key word g
i s kin (ging on ca button) 
load : s kin này xy ra khi movie clip xu#t hin l
n 
u tiên trên màn hình . NÓ ch 
xy ra mt l
n. 
Nh r"ng ngay c khi time line chính b )ng, movie clip n"m trên time line v$n tip 
t'c ch	y. S kiên enterFrame xy ra liên t'c bên trong movie clip m.i khi n mt 
frame mi. S kin này s thc thi o	n mã mt cách liên t'c cho n khi nó b kt 
thúc. 
ActionScript 
onClipEvent (enterFrame) { 
 trace("This clip has entered a new frame."); 
} 
bây gi hãy copy 2 o	n code trên vào ca s action ca timeline chính và run .. b	n 
s th#y 
ActionScript 
This clip has been loaded 
 This clip has entered a new frame 
 This clip has entered a new frame 
 This clip has entered a new frame 
 This clip has entered a new frame 
dòng ch s tip t'c hin ra cho n khi b	n tt movie. 
 Gi th 07: dch chuyn và thay 
 i movie, Moving and Changing Movie Clips 
Mt movie clip (MC) bao gi cng có các thuc tính, cho phép b	n xác nh v trí, 
phóng to thu nh&, quay, thm chí làm nó bin m#t. 
Chng này các b	n s bit cách: 
-thay  i v trí ca mc 
-xác inh v trí chut 
-làm sao  quay mt mc 
-làm sao  phóng to mc 
-làm sao  movie invisible 
1) V trí ca MC: 
M
i th trong Flash u có v trí. V3 trí này c o b"ng PIXEL. Góc trên cùng bên 
trái ca màn hình là v trí (0,0) .Nó là v trí giao ca hàng ngang và ct d
c. 
Nu b	n s d'ng mt movie m%c nh, thì góc di bên phi s là 550,400. Có nghia 
là 550 pixel t) bên trái sang và 400 pixel t) bên trên xung. 
nhìn hình sau  rõ hn. 
2) V trí ca Mouse: 
Cng nh movie, mouse cng có th xác inh c t
a .. CHú ý thut ng mouse  
ây là nói n con tr& (cursor), ch không phi con chut b	n ang c
m trên tay.. ^^ 
Có hai thuc tính c bn ca con tr& , ó là _xmouse và _ymouse. 
Vy _xmouse và _ymouse là thuc tính ca chính i tng mà chúng c gán. Nu 
b	n s d'ng trên time line chính, thì chúng là thuc tính ca time line. Nu b	n s 
d'ng chúng trên movie clip, thì nó là thuc tính ca movie clip. Nu xmous y mouse 
là thuc tính ca time line chính, nó s m%c nh là góc trái trên cùng. Nu xmouse 
ymouse là thucc tính ca 1 movie clip, nó s m%c nh  trung tâm ca MC. 
H
u ht các trng hp thuc tính liên quan n movie chính, b	n nên dùng cách 
_root._xmouse và _root._ymouse 
+ây là mt o	n code ví du 
CODE 
onClipEvent (enterFrame) { 
 trace(_root._xmouse); 
 trace(_root._ymouse); 
 trace(""); 
} 
Khi b	n ch	y movie, b	n s th#y các c%p s c in ra, ó chính là t
a  x,y mouse 
.Hãy dch chuyn mouse lên góc trái trên, b	n s th#y  ó v trí mouse là 0.0. ho%c 
góc phi di, t
a  là 550 400. 
Chú ý: khi b	n a chut ra ngoài Flash window, t
a  chuôt xmouse y mouse 
không thay  i. Nu b	n di chuyn chut tht nhanh t) trung tâm ca ca s ra ngoài 
ca s , các giá tr c v$n  ó cho n khi b	n quay tr l	i ca s . VÌ vy, b	n phi 
luôn lên k ho	c c!n th!n trc khi dùng xmouse, y mouse 
3) Làm movie quay 
Mt thuc tính khac ó là thuc tính _rotation 
Thuc tính rotation ch#p nhn giá tr là góc . Mt vòng tròn chia ra 360 , min 
giá tr c thuc tính rotation là -180 và 180. B	n có th s d'ng giá tr integer ho	c 
floating point. 
Giá tr ca _rotation luôn luôn  trong vòng -180 và 180, ví d' 179, ho%c -179. Nhng 
nu b	n %t nó là 181, nó s hiu thành góc  -179. 
vy  quay mt movie, n gin là %t giá tr cho nó, b	n cng có th s d'ng các 
biu toán ++, +=  thay  i giá tr . Hãy xem ví d' sau 
CODE 
myClip._rotation = 90; 
myClip._rotation++; 
_root["myClip"]._rotation = 45; 
this._rotation += 0.5; 
4) Co giãn 
àn hi mt MC: 
B	n có th làm co giãn, thay  i chiu dài chiu rng ca movie clip 
Scale thuc tính 
THuc tính  làm vic này là _xscale cho chiu ngang và _yscale cho chiu d
c. 
Các giá tr c gán cho x,y scale là ph
n trm. Có ngh(a giá tr 100 là 100 ph
n trm 
, ây là thuc tính m%c inh cho mt movie clip gc. B	n có th s d'ng các s nh& 
hn nh 50  làm movie co l	i. Ho%c có th s d'ng s to hn, 200  giãn movie ra. 
Thm có th dùng các giá tr âm  lt movie. 
ví d' 07mousesclae.fla cha mt o	n mã mà chúgn ta s g%p r#t nhiu sau này. Nó 
kim tra t
a  ca mouse,. Sau ó xác inh t) mouse n trung tâm movie xa bao 
nhiêu. R*i nó s d'ng khong cách ,c chiu cao chiu rng  tính ph
n trm t l 
cho movie clip. 
CODE 
onClipEvent (load) { 
 // get the original width and height of the mc 
 origWidth = this._width; 
 origHeight = this._height; 
} 
onClipEvent (enterFrame) { 
 // get the distance from the center of the mc to the mouse 
 dx = _root._xmouse-this._x; 
 dy = _root._ymouse-this._y; 
 // calculate the percentage of scale 
 sx = 100*dx/(origWidth/2); 
 sy = 100*dy/(origHeight/2); 
 // set the scale of the mc 
 this._xscale = sx; 
 this._yscale = sy; 
} 
Chú ý  ây ta s d'ng 2 thuc tính mi, _width và _height tr v chiu cao và chiu 
rng ca movie clip b"ng Pixel. CHúng c lu giú trong onClipEvent (load) vì  
khi ta c
n l#y l	i giá tr gc ca movie. 
Thuc tính _width, _height 
S khác nhau gia scale và width,height í scale s d'ng giá tr ph
n trm. Còn width 
height s d'ng pixel . Movie có th có giá tr sau: width 75, height 45, nhng scale 
cho c xscale and yscale là 100 ph
n trm. 
Di ây là mt ví d' s d'ng width height th#y th cho xscale, yscale. 
CODE 
onClipEvent (enterFrame) { 
 // get the distance from the center of the mc to the mouse 
 dx = _root._xmouse-this._x; 
 dy = _root._ymouse-this._y; 
 // set the scale of the mc 
 this._width = dx*2; 
 this._height = dy*2; 
} 
b	n có th th#y code này ngn g
n hn  trên. bi vì nó ko s d'ng s kiên 
onClipEvent(load) bi gái tr chiu dài chiu cao ca movie gc ko c
n lu tr.+ây là 
mt ví d' cho th#y s d'ng width và height tin hn d'ng xscale ,y scale. 
5) Visibility 
Mt thuc tính khác ca MC là thuc tính _visible , giá tr ca thuc tính này là giá tr 
boolean true , false. 
CODE 
myClip._visible = false; 
hãy xem ví d' 07visible.fla  rõ hn. 
Gi s ta không mun movie bin m#t h0n, mà ch b m i, ta s d'ng thuc tính 
_alpha . Thuc tính có giá tr t) 0 n 100 
CODE 
myClip._alpha = 50; 
Thuc tính alpha là kênh màu th 4, tên là alpha channel . 3 kênh 
u tiên là red 
,green, blue   t	o ra 7 màu c
u v*ng. Khi b	n nghe n * h
a 32 bit, có ngh(a là 
nó  4 kênh màu.. Còn 24 bit có ngh(a ch c& 3 kênh 
u tiên. 
Nu giá tr ca _visible là 0 thì movie là trong sut hoàn tòan và có th nhìn th#y t#t 
c m
i th phía sau movie. 
Nhìn hình sau  xem cùng 1 movieclip nhng vi 3 giá tr alpha khác nhau, 10, 50 
và 100 (t) trái sang) 
 Gi th 08: chn, kéo th	 movie clip, Moving and Changing Movie Clips 
1. Selection 
B	n ã bit cách h
c sao  t	o mt button và cho phép ngi s d'ng click vào làm 
s kin ho	t ng. Tuy nhiên  ây ta s h
c cách click vào  ch
n la mt i 
tng trên màn hình. 
T	o mt ch
n la, có ngh(a là user click vào item , nhng không có gì xy ra. Nh 
vy, ngi dùng có th la ch
n và thay  i la ch
n. 
Chúng ta s s d'ng l'a ch
n nh bc 
u tiên  h
c kéo th movie. 
Button  bên trong mt Movie method. 
Mt movie không th phn ng vi mouse click. Không th s d'ng các s kin nh 
on (release) hay (Press). vì vy ta phi tìm cách ánh l)a nó. +ó là s d'ng mt 
button bên trong movie. Button có th x lý c mouse click, và min là nó có  
ln   bao trùm mt movie. 
Hãy xem ví d' 08buttoninmc.fla . Ta ch nhìn th#y mt movie clip trên màn 
hình.nhng thc ch#t bên trong ca movie clip là mt button. 
+ t	o ra kh nng select, ta phi t	o nhiu frame.Frame 
u tiên cha mt button tên 
là offbutton. Button này có mã là 
CODE 
on (release) { 
 this.gotoAndStop(2); 
} 
b"ng this, button s g
i n movie clip mà nó n"m trên #y. Frame th 2 cha nút 
tng t nhu frame 1 , tên là onbutton, nút này có m
u hi sáng hn  ngi dùng 
nhn ra khi nó c ch
n. 
CODE 
on (release) { 
 this.gotoAndStop(1); 
} 
cui cùng %t vào frame 1 
CODE 
stop(); 
Bây gi hãy ch	y  xem. 
Phng thc hitTest 
Có cách khác  làm movie có th s lý mouse click mà không c
n button, ó là s 
d'ng s kin onClipEvent(mouseDown) ho%c là onClipEvent(mouseUp)ví d' 
CODE 
onClipEvent (mouseUp) { 
 this.gotoAndStop(2); 
} 
Hãy ch	y ví d' 08twomcs1.fla  xem.B	n s th#y t	i sao onClipEvent(mouseUp) 
khác vi on (Release) . Nu b	n click vào movie, c hai u phn ng.Bi vì t#t c 
movie clip nhn s kin mouse up c gi n cho chúng. 
 Quyt inh movie nào c click. 
Có mt cách  click vào movie mình mun. +ó là s d'ng v trí chut  xác nh. 
Sa o	n mã thành nh sau 
CODE 
onClipEvent (mouseUp) { 
 if (this.hitTest(_root._xmouse, _root._ymouse)) { 
 this.gotoAndStop(2); 
 } 
} 
vy b"ng cách ràng buc movie clip vi mouse location , ta có th click movie ta 
mun. 
VIt mã cho selection: 
Chúng ta phi cho phép User click lên movies nhiu l
n và thay  i tr	ng thái ca MC 
t) bt sang tt, hay tt sang bt. 
+o	n mã sau có th xác nh movie ang  tr	ng thái nào và gi nó n frame khác. 
VIc này thc hin b"ng thuc tính _currentFrame . Thuc tính này s 
c giá tr 1 
kh nó  frame th nh#t, giá tr 2 khi nó  frame th 2. 
CODE 
onClipEvent (mouseUp) { 
 if (this.hitTest(_root._xmouse, _root._ymouse)) { 
 if (this._currentFrame == 1) { 
 this.gotoAndStop(2); 
 } else { 
 this.gotoAndStop(1); 
 } 
 } 
} 
Bây gi b	n ã th#y các cách  t	o s ch
n la movie. Cách th nh#t tin li nu b	n 
mun dùng c các trang thái khác nh Over,up , down.. Cách th hai thì không c
n 
nhiu biu tng trong th vin. 
Enjoy.. 
2) Kéo mt movie clip 
Bây gi ta s h
c kéo mt movie. 
Có 2 cách  kéo movie, cách th nh#t là s d'ng lnh . Cách này r#t d s d'ng 
nhng nó không cho b	n nhiu la ch
n trong vic sa  i và giám sát movie. 
Cách Drag c bn: 
2 câu lnh drag co bn là :startDrag và stopDrag. b	n dùng startDrag khi b	n mun 
movie ca b	n i theo chut, còn stopDrag khi b	n mun movie ca b	n không theo 
chut na. +ây là o	n code c bn : 
CODE 
onClipEvent (mouseDown) { 
 if (this.hitTest(_root._xmouse, _root._ymouse)) { 
 this.startDrag(); 
 } 
} 
onClipEvent (mouseUp) { 
 if (this.hitTest(_root._xmouse, _root._ymouse)) { 
 this.stopDrag(); 
 } 
} 
S kin onClipEvent nhìn tng t nh ta ã làm  trên. Chúng s d'ng hitTest  
nhn bit movie nào ang c click. Và sau ó câu lnh startDrag và stopDrag c 
s d'ng. Khi chut c b#m xung, câu lnh startDrag thc thi. Và ngc l	i, khi 
chut th ra, stopDrag thc thi. 
Hãy xem movie, b	n s th#y vi các câu lnh drag, b	n có th kéo các movie mt 
cách c lp. Nhng chú ý r"ng b	n không th kéo 2 movie cùng mt lúc. Ch mt 
movie c kéo t	i mt thi im. Vì vy b	n nên c
n cách drag phc t	p và linh 
ng hn  làm ng d'ng hay game. 
Note: startDrag có 5 thám s. Tham s th nh#t là giá tr True(ho%c False)  quyt 
nh vic trung tâm ca movie clip có khóa vi v trí chut hay không. Các tham s 
còn l	i là left, top, right, bottom. Nu b	n %t chúng, movie ca b	n ch có th c 
kéo theo các ràng buc ó. 
Kéo nâng cao 
Bây gi ta h
c cách kéo movie mà ko dùng câu lnh startDrag và stopDrag. Vy làm 
th nào?? 
B	n c
n có 4 ph
n mã sau trong movie ca b	n: 
Th nh#t là s kin onClipEvent(load), s kin này s %t cho bin global tên là 
dragging giá tr false. Khi bin này true, tc là báo hiu r"ng movie có th c kéo. 
Th hai, ngòi dùng click vào mt movie. Có ngh(a là dragging = true . 
Th ba, quá trình kéo s tip t'c din ra bi s kin onClipEvent(enterFrame). S 
kin này ch n gin gán _x và _y (thuc tính ca movie clip) cho _root._xmouse và 
_root._ymouse(thuc tính ca con tr& ). 
Th 4, nu ngòi dùng th chut , thì bin dragging c gán false. 
Sau ây là o	n code 
y  
CODE 
onClipEvent (load) { 
 // start out not dragging 
 dragging = false; 
} 
 onClipEvent (mouseDown) { 
 if (this.hitTest(_root._xmouse, _root._ymouse)) { 
 // follow the mouse from now on 
 dragging = true; 
 } 
} 
onClipEvent (enterFrame) { 
 if (dragging) { 
 // set to location of the mouse 
 this._x = _root._xmouse; 
 this._y = _root._ymouse; 
 } 
} 
onClipEvent (mouseUp) { 
 if (this.hitTest(_root._xmouse, _root._ymouse)) { 
 // don't follow the mouse any longer 
 dragging = false; 
 } 
} 
Trong ví d' 08complexdrag.fla cha 2 MC. Kim tra movie, nhng ch s d'ng MC 
bên trái. +ây là MC làm theo o	n code trên. Chú ý xem trung tâm movie c khóa 
vi v trí chut nh th nào. Nó làm movie nhy ngay lp tc nu b	n click vào nó. 
Thông thng, khi b	n mun kéo MC ó lên màn hình, b	n không mun nó nhy ti 
 làm khp v trí chut vi trung tâm ca MC. Hãy kéo file xung quanh màn 
hình.B	n s th#y khi b	n click chut vào b#t kì im nào trên movie, movie s lp tc 
làm khp v trí click chut vi trung tâm movie. +iu này cng tng t vi câu lnh 
startDrag . 
+ tránh iu này, chúng ta ch c
n thêm mt o	n code nh&. Khi ngòi s d'ng b#m 
chut, chúng ta s l#y offset, ây là khong cách t) chut cho n trung tâm ca 
movie. Sau ó, thay th b"ng vic gán v trí chut n trung tâm movie, ta se thêm 
vào offset  cho MC luôn luôn xu#t hin offset bi cùng mt giá tr khi ngi dùng 
kéo. 
Tng tng , ví d' ngòi dùng click vào mt im cách trung tâm movie 5 pixel. 
Sau ó ta luôn mun khong cách 5 pixel ó c duy trì. +iu này làm cho ngi 
dùng có th click vào b#t c im nào  kéo movie. 
+ây là code cho movie 2(bên phi) 
CODE 
onClipEvent (load) { 
 // start out not dragging 
 dragging = false; 
} 
onClipEvent (mouseDown) { 
 if (this.hitTest(_root._xmouse, _root._ymouse)) { 
 // follow the mouse from now on 
 dragging = true; 
 // get the mouse offset 
 xOffset = this._x - _root._xmouse; 
 yOffset = this._y - _root._ymouse; 
 } 
} 
onClipEvent (enterFrame) { 
 if (dragging) { 
 // set to location of the mouse 
 this._x = _root._xmouse + xOffset; 
 this._y = _root._ymouse + yOffset; 
 } 
} 
onClipEvent (mouseUp) { 
 if (this.hitTest(_root._xmouse, _root._ymouse)) { 
 // don't follow the mouse any longer 
 dragging = false; 
 } 
} 
Hãy xem movie  th#y khác bit gia 2 o	n code. 
3) Kéo và th 
Bây gi ta ã bit kéo movie, vy ta s th nó  âu.? 
V#n  là b	n mun theo dõi hành ng ca ngi s d'ng và xác inh ngi s dung 
%t movie  âu. 
Basic Drop Zone 
Chc nng hitTest có th c s d'ng  xác nh khi MC b è lên nhau. Trong 
o	n mã sau, chúgn ta s d'ng lnh startDrag  o	n mã kéo th n gin i, nh ó 
ta có th tp trung vào các chc nng mi. 
Trong o	n mã sau, chc nng hitTest c s d'ng  so sánh MC c kéo vi mt 
movie khác tên là dragZone  trên mt lêvl(root level) 
CODE 
onClipEvent (mouseDown) { 
 if (this.hitTest(_root._xmouse, _root._ymouse)) { 
 this.startDrag(); 
 } 
} 
onClipEvent (mouseUp) { 
 if (this.hitTest(_root._xmouse, _root._ymouse)) { 
 this.stopDrag(); 
 // see if this mc is inside the dropZone mc 
 if (this.hitTest(_parent.dropZone)) { 
 trace("Dropped in zone"); 
 } else { 
 trace("Dropped outside zone"); 
 } 
 } 
} 
Chú ý hitTest không c s d'ng nh các bài trc, chúng ta thay th v trí _x và _y 
bi mt movie khác. 
Lo	i hitTest này so sánh v trí và vùng c bao ph ca 2 movie clip. Trong trng 
hp này, nó c so sánh vi _parent.dropZone. Nu có 2 movie è lên nhau, hitTest 
tr giá tr True. + xác inh xem MC nào ang t*n t	i, hình ch nht ca c 2 movie 
u c s d'ng. +iu này có ngh(a là khi b	n s d'ng 2 hình tròng, nh trong ví 
d', bn thân chính các vòng tròn ó không c ch	m vào min là các hình ch nht 
ca 2 movie c dùng. 
Hãy xem hình minh h
a. T#t c các movie Dragme u n"m è trên DropZone. 
Có 2 cách s d'ng hitTest. Th nh#t là s d'ng t
a  x,y. Chúng ta có th s d'ng 
movie clip nh v trí x,y, r*i sau ó s d'ng dropzone nh mt movie clip th nh#t. 
CODE 
if (_parent.dropZone.hitTest(this._x,this._y)) { 
Vi o	n code này, thay th ví d' trên, movie clip s n"m  bên trong hình ch nht 
ca vùng dropzone. 
Chúng ta có th thêm mt bc na vi hittest. B"ng cách thêm tham s th 3 cho 
hitTest, chúng ta có th dùng hitTest  xem hình d	ng chính xác ca movie clip và 
xác inh v trí x,y. Bin th 3 này c
n gán true nu b	n mun hành vi này. Nu nó 
false, nó se hành ng ging nh chc nng hitTest bình thng. +ây là o	n code 
CODE 
if (_parent.dropZone.hitTest(this._x,this._y,true)) { 
Bây gi movie kéo th ca ta h
at ng tt hn. Nu b	n s d'ng ví d' 08drop.fla, 
movie bên phi s s d'ng o	n mã gôc, và nó n"m è  trên hình ch nht ca 
dropzone. Các movie khác s d'ng o	n code phc t	p hitTest và chúng có trung tâm 
nàm bên trong hình d	ng gc ca dropzone. 
 Gi th 09: Ly thông tin t ngi dùng, Getting input from the user 
Cho ti bây gi, qua 8 gi làm quen vi AS, t#t c các tác ng ca b	n lên trên flash 
u c làm qua chut. Nhng ngoài chut, b	n có th dùng bàn phím  n	p thông 
tin vào Flash. 
Làm sao 
 phát hin khi ngi dùng bm phím 
Có 3 cách  phát hin khi mt phím tên bàn phím b nh#n. 1 là dùng nút, 2 là dùng 
i tng Key, và 3 là dùng "listener" (ch có  Flash MX và MX 2004) 
1. Phát hin qua nút: 
B	n có th dùng nút  phát hin khi ngi dùng s d'ng bàn phím. B	n chi c
n dùng 
lnh x lý s kin on cho o	n code ca nút . Ví d' o	n code sau s kích ho	t khi 
mà ngi dùng nh#n phím "a". 
ActionScript 
on (keyPress "a"){ 
 trace ("Key 'a' pressed"); 
} 
Trong movie m$u 09keybutton.fla có mt nút n gin n"m trên màn hình và vài ví 
d' trong ó. Nu b	n cho ch	y th movie và nh#n phím "a" thì Output window s có 
vit ra dòng ch "Key 'a' pressed.". X lý d kin on(keyPress) nh là phi phân 
bit d	ng ch (case-sensitive) nên nu b	n ch code cho nó nhn phím "a" thì nó s 
không th nhn c phím "A". May mà chúng ta có th dùng bao nhiu b x lý d 
kin cng c. 
Nu b	n mun x lý các phím khác, nh các phím mi tên, enter, thanh dài (space 
bar) ... thì b	n phi dùng các code dành riêng cho chúng. Vì d' b	n mun x lý phím 
mi tên trái (left arrow key) thì dùng o	n code sau: 
ActionScript 
on (keyPress "") { 
 trace("Left pressed."); 
} 
Và sau ây là các code dành cho các phím %c bit: 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
B	n có th hp nhiu d kin l	i chung vi nhau. Ví d' b	n có mt nút và nút ó có 
phím tt là "b". Vy khi b	n nh#n nút ó hay là nh#n phím "b" thì code ca nút ó s 
c kích ho	t. 
ActionScript 
on (keyPress "b", release) { 
 trace("'b' pressed or button clicked."); 
} 
Các ví d' trên u có trong movie m$u 09keybutton.fla 
2. Phát hin qua i t!ng phím (key object) 
M%c dù nút r#t hu ích trong vic phát hin khi ngi dùng nh#n phím, nhng nút l	i 
không th phát hin c trng hp khi ngi dùng nh#n phím và không nh#t tay. 
Ví d' nu b	n làm mt game b"ng Flash, và trong ó ngi chi cho th làm cho các 
nhân vt trong game di chuyn liên t'c nu nh h
 nh#n phím mi tên và không nhât 
tay lên. 
Cho nhng trng hp nh vy, b	n phi dùng i tng Key. +i tng Key là tp 
hp ca mt s hàm (function) và h"ng s (constant) c xây dng s0n trong Flash. 
B	n có th dùng các hàm và h"ng s này  biêt c các phím ang b nh#n hay 
không. Ví d', nu mun kim tra coi phím mi tên trái có b 
ang nh#n hay không thì 
dùng o	n code sau: 
ActionScript 
if (Key.isDown(Key.LEFT)) { 
 trace("The left arrow is down"); 
} 
Hàm Key.isDown s cho ra kt qu úng hay sai ph' thuc vào thông s có phi là 
phím ang b nh#n hay không. H"ng s Key.LEFT tng trng cho phím mi tên 
trái. vy khi mi tên trái b nh#n thì output window s cho ra hàng ch "The left arrow 
is down". Di ây là các h"ng s tng t nh Key.LEFT  cp  trên 
 Key.BACKSPACE 
 Key.ENTER 
 Key.PGDN 
 Key.CAPSLOCK 
 Key.ESCAPE 
 Key.RIGHT 
 Key.CONTROL 
 Key.HOME K 
 ey.SHIFT 
 Key.DELETEKEY 
 Key.INSERT 
 Key.SPACE 
 Key.DOWN 
 Key.LEFT 
 Key.TAB 
 Key.END 
 Key.PGUP 
 Key.UP 
Nu b	n mun kim tra xem nu nhng phím bình thng ang b nh#n thì b	n phi 
dùng Key.getCode  l#y mã s ca phím ó  dùng trong hàm Key.isDown. +ây là 
code m$u khi b	n mun kim tra phím "a" 
ActionScript 
if (Key.isDown(Key.getCode("a")) { 
 trace("The left arrow is down"); 
} 
Cho 2 ví d' trên, b	n có th coi source Fla 09keyobject.fla 
3. Key Listener 
Key listener c dùng  quan sát bàn phím và thông báo cho Flash khi phím c 
nh#n. 
/ cách th 2 chúng ta dùng i tng Key  kim tra coi phím có b nh#n hay 
không, nhng nó không th bit chính xác lúc nào thì phím b nh#n. Nu mà ngi 
dùng nh#n phím quá nhanh, trc khi onClipEvent(enterFrame) kp kích ho	t i 
tng key  kim tra thì Flash s không bao gi bit c ngi dùng ã nh#n phím. 
Mt b#t tin na khi dùng cách th 2 là nu b	n mun ngi dùng nh#n phím nhiu 
l
n thì i tng Key s không phân bit c ó là 1 l
n nh#n dài hay là nhiu cái 
nh#n tht nhanh. 
Ví vy  Flash MX, MM cho chúng ta thêm mt la ch
n na là Key listeners. b	n có 
th dùng "listener" (có th hiu nó nh mt quan sát viên)  theo dõi s kin ca bàn 
phím và thông báo cho Flash ngay khi phím c nh#n. 
Listener có 2 ph
n. Ph
n 
u là ph
n t	o listener. B	n phi ra lnh cho listener này 
chú ý vào s kin ca bàn phím. +ây là code cho t	o listener 
ActionScript 
Key.addListener(_root); 
 Lnh Key.addlistner t	o listener cho i tng trong thông s là _root. Và i tng 
này s c thông báo v s kin ca bàn phím. 
Trong o	n code trên, _root là i tng c thông báo v s kin ca bàn phím. 
Nhng khi nhn c thông báo thì _root phi làm gì? Vì vy chúng ta c
n phi vit 
code x lý s kin cho _root. Ví d' o	n code sau s c thc hin khi _root nhn 
c thông báo v s kin bàn phím. 
ActionScript 
_root.onKeyUp = function() { 
 trace(Key.getAscii()); 
} 
Khi ngi dùng nh#n phím, r*i nh#t tay lên thì s t	o ra s kin onKeyUP, và s kin 
này c thông báo ti _root (b	n có th thay th _root bng b#t k, i tng nào) và 
sau ó thì hàm Key.getAscii() s cho ra kt qu là mã s ASCII tng ng vi phím 
v)a c nh#n, ví d' A = 65, B = 66 .v.v 
B	n có th xem cái fla m$u 09keylistener.fla, trogn ó có o	n code trên (lu ý là 
trong fla này s không có gì ht ngoài o	n code AS  frame 
u tiên) 
Nu b	n mun bit phím c nh#t là gì thay vì ASCII code thì b	n có th dùng 
String.fromCharCode()  cho ra kt qu b	n mun tìm. Thay dòng 
trace(Key.getAscii()); bng trace(String.fromCharCode(Key.getAscii())); 
Tht ra ngoài 3 cách trên, còn mt cách na là dùng b x lý s kin onClipEven ca 
movie clip  theo d&i s kin keyDown, keyUp, nhng cách này không còn c 
dùng trong Flash MX na, vì vy b	n ch có th cách này trong các Flash trc MX 
thôi. 
Bài Tp: Dùng phím  di chuyn movie clip 
1. T	o mt file Flash mi 
2. T	o mt movie clip n gin 
3. Gn o	n code này vào movie clip ó 
ActionScript 
onClipEvent(enterFrame) { 
 if (Key.isDown(Key.LEFT)) this._x -= 5; 
 if (Key.isDown(Key.RIGHT)) this._x += 5; 
 if (Key.isDown(Key.UP)) this._y -= 5; 
 if (Key.isDown(Key.DOWN)) this._y += 5; 
}[/b] 
+o	n code trên kim tra 4 phím mi tên và di chuyn movie clip theo hng ca mi 
tên. B	n hãy th movie coi sao 
4. Thay  i o	n code trên cho hoàn chnh hn: t	o 2 bin [b]x, y[/b] có giá tr tng 
ng vi v trí ban 
u ca movie clip, và lp giá tr cho bin [b]speed[/b] bng 5. 
M i frame ca movie, mình s kim tra 4 phím mi tên và iu chnh giá tr ca 2 
bin [b]x,y[/b] ch không iu chnh v trí ca movie clip, sau ó phi hp vi bin 
[b]speed[/b]  tìm v trí mi cho movie clip, r*i mi di chuyn movie clip ti ó: 
[code]onClipEvent(load) { 
 x = this._x; 
 y = this._y; 
 speed = 5; 
} 
onClipEvent(enterFrame) { 
 if (Key.isDown(Key.LEFT)) { 
 x -= speed; 
 } 
 if (Key.isDown(Key.RIGHT)) { 
 x += speed; 
 } 
 if (Key.isDown(Key.UP)) { 
 y -= speed; 
 } 
 if (Key.isDown(Key.DOWN)) { 
 y += speed; 
 } 
 this._x = x; 
 this._y = y; 
} 
+o	n code trên có 2 li im. Th nh#t, chúng ta tìm v trí mi ca movie clip trc 
khi chúng ta di chuyn movie clip ti ó, và nh vy chúng ta có th kim tra v trí 
mi có hp lý không (áo d'ng rât nhiu trong game), và th hai là r#t tin cho chúng 
ta thay  i tc  di chuyn ca movie clip, ch c
n thay  i giá tr ca bin speed 
Nhp v
n b	n 
Trong Flash, ngi dùng có th nh$p vn bn vào các khung, và b	n có th dùng AS 
 l#y nhng vn bn ó. + cho ngi dùng có th nhp vn bn, b	n phi t	o khung 
input text và t	o cho 1 varible  tng ng vi gía tr trong khung input text ó. 
(nu b	n nào cha bit t	o input text thì có th download 3 cái CD hng d$n  bên 
box tài liu  tham kho thêm) 
Các chc n
ng và thao tác làm vic vi chu"i ký t (string 
Chúng ta có r#t nhiu thao tác vi chu.i ký t: 
1. Ghép 2 chu.i l	i vi nhau: dùng ký hiu +. Ví d' b	n có variable tên là myVariable 
có giá tr là "Hello", và mun ghép ch "world" vào sau ó thì dùng nh sau: 
myVariable = myVariable + "world" và kt qu có c s là "Hello world". B	n 
cng có th ghép nhiu hn 2 chu.i l	i vi nhau b"ng cách trên. 
2. Substrings. Substring là mt chu i ký t nh& trong 1 chu i ký t khác. Ví d' "ell" 
là substring ca "hello world" hay là "hello" hay là "elle" hay "hell". 
B	n có th l#y b#t c substring nào ca 1 string vi cú pháp sau: 
String.substring(start, end));. String là i tng chu.i mà b	n mun trích ra mt 
ph
n, start là s th t ca ký t bt 
u cho chu i b	n mun lây, và end là s th t 
bt âu cho ph
n b	n không mun l#y. Lu ý rng ký t 
u tiê s có s th t là 0. 
Ví d' vi o	n code sau, output window s cho ra hàng ch "lo W" 
ActionScript 
var myString = "Hello World."; 
trace(myString.substring(3,7)); 
Ngoài ra còn 1 cách na dùng tng t nh cách trên nhng ch khác v thông s và 
có cú pháp nh sau: String.substr(start, length);. thông s 1 cho s th t ca ch 
cái 
u tiên và th hai cho chiu dài ca chu.i. +o	n code sau cng s có kt qu 
tng t nh  cách 1 
ActionScript 
var myString = "Hello World."; 
trace(myString.charAt(6)); 
Các hàm ca 
i t!ng String 
Sau ây là mt s hàm tiêu biu ca i tng String. 
1. indexOf: dùng  tìm s th t ca mt ký t hay mt chu.i nh& trong i tng 
String. Nu hàm indexOf tìm không th#y ký t hay chu.i nh& thì s cho ra kt qu -1. 
+ây là cú pháp:myString.indexOf(substring,start)); substring là ký t hay chu.i 
mình mun tìm, start là s th t mình bt 
u tìm trong i tng String. Ví d': 
ActionScript 
var myString = "Hello World."; 
//output: 6 
trace(myString.indexOf("W",0)); 
//output: 2 
trace(myString.indexOf("llo",0)); 
2. lastIndexOf: tng t nh indexOf nhng chúng ta tìm ký t cui cùng i ngc 
lên tiký t 
u tiên. 
ActionScript 
var myString = "Hello World."; 
//output: 2 
trace(myString.indexOf("l",0)); 
//output: 9 
trace(myString.lastIndexOf("l")); 
3. toUpperCase/toLowerCase: dùng   i chu.i t) vit thng sang vit hoa và 
ngc l	i 
ActionScript 
var myString = "Hello World."; 
//output: HELLO WORLD 
trace(myString.toUpperCase()); 
//output: hello world 
trace(myString.toLowerCase()); 
4. length: là %c tính ca Sring dùng  tính chiu dài ca chu.i. 
ActionScript 
var myString = "Hello World."; 
//output: 12 
trace(myString.length); 
Bài tp: 
1. m file 09form-noscripts.fla 
2. kim tra tên ca variable ca m.i input text field qua property panel 
3. Thêm o	n mã sau vào nút CLEAR 
ActionScript 
on (release) { 
 clearForm(); 
} 
4. thêm o	n mã sau vào nút SUBMIT 
ActionScript 
on (release) { 
 submitForm(); 
} 
5. Thêm o	n code sau vào frame 
u tiên ca movie 
ActionScript 
function clearForm() { 
 firstName = ""; 
 middleInitial = ""; 
 lastName = ""; 
 address = ""; 
 city = ""; 
 state = ""; 
 zip = ""; 
 phone = ""; 
 comments = ""; 
} 
function submitForm() { 
 if (middleInitial.length == 1) { 
 trace("Name: "+firstName+" "+middleInitial+". "+lastName); 
 } else { 
 trace("Name: "+firstName+" "+lastName); 
 } 
} 
R*i b	n test movie. 
 Gi th 10: To Và iu Khin V
n B	n, Creating and Controlling Text 
Dynamic Text 
B	n cng có th hin th vn bn b"ng dynamic text field. Khác vi Input field mà 
b	n làm quen trong gi s 9, dynamic text field ch cho phép AS thay  i ni dung 
vn bn ch không phi là ngi dùng. Vì ni dung, hình thc ca vn bn có th 
thay  i b#t c lúc nào nên mi g
i là dynamic text 
Trc tiên b	n t	o dynamic text b0ng d'ng c' text trên thanh toolbar, nhng thay vì 
ch
n "Input Text"  trong property panel, b	n ch
n "Dynamic Text" 
Bc k tip là ni ni dung ca vn bn trong dynamic text field vi mt variable 
b"ng cách vit tên ca variable ó vào trong khung Var  trong propery panel. Ví d' 
nh b	n %t variable myText vào trong khung Var thì khi b	n thay  i giá tr ca 
myText thì vn bn trong dynamic text field cng thay  i ging nh giá tr ca bin 
myText. Ngoài ra b	n còn có th thay  i mt s la ch
n cho dynamic text field nh 
"Single", "Multiline", or "Multiline No Wrap"  x lý trng hp ni dung ca vn 
bn quá dài và cònn nhiu la ch
n khác na. (Nu b	n cha nm vng ph
n này thì 
có th tham kho thêm v s d'ng Flash trong CD c post box tài liu) 
nh dng v
n b	n theo HTML 
(HTML format) 
+ nh d	ng vn bn kiu HTML, bn phi cho phép dynamic text field ch#p nhn 
nh d	ng HTML (click vào HTML icon  trên property panel) và sau ó b	n có th 
dùng th4 HTML  nh d	ng vn bn ca b	n. Ví d' o	n code này s t	o vn bn 
sau: 
CODE 
myText = "This text is bold."; 
myText += "This text is italic."; 
myText += "This text is underlined."; 
myText += "This text is red."; 
myText += "This text is Arial Black."; 
myText += "This text is large."; 
myText += "This text is linked."; 
QUOTE 
This text is bold. 
This text is italic. 
This text is underlined. 
This text is red. 
This text is Arial Black. 
This text is large. 
This text is linked. 
Siêu liên kt (hyper link) trên có tác d'ng ging nh trong HTML nh khác 1 iu là 
không có g	ch di 
Sau ây là nhng th4 HTML có th dùng trong Flash MX 
 : vit m 
 : vit nghiêng 
 : g	ch di 
 : kiu ch 
 : c1 ch 
 : màu ch 
 : link 
 : +
an vn 
 : Xung hàng 
i T!ng TextFormat 
Còn mt cách khác  nh d	ng cho vn bn là dùng i tng TextFormat. + làm 
c iu này, b	n c
n phi t	o ra 1 bin t) i tng TextFormat. Sau ó b	n có th 
nh giá tr cho các thuc tính ca nó. Ví d' b	n mun kiu ch Arial Black, c1 26, và 
màu & thì dùng 
an code sau: 
CODE 
myFormat = new TextFormat(); 
myFormat.font = "Arial Black"; 
myFormat.size = 36; 
myFormat.color = 0xFF0000; 
textInstance.setTextFormat(myFormat); 
B	n có th dùng i tng TextFormat nh là stylesheet trong các file HTML, mt 
khi b	n t	o nó ra thì b	n có th dùng nó  b#t c ch nào trong movie 
B	n có th coi các 
an code trên trong file m$u: 10formattext.fla 
Variable  ngoài Flash 
B	n có th l#y bin t) ngoài trang HTML vào trong Flash  thay  i ni dung ca 
Flash hay dùng vào b#t c chuyn gì. Ví d' b	n phi làm 30 cái banner b"ng Flash 
cho 30 trang web, thì b	n có th ch làm 1 cái banner thôi, nhng thay .i ni dung 
tu, theo t)ng trang web. Mun nhp vn bn hay giá tr ca bin nào t) HTML, b	n 
ch c
n thêm vài ch vào sau cái tên ca movie trong ph
n và 
trong HTML.. +o	n mã HTML sau ây nhp giá tr ca bin txtName vào trong Flash 
HTML 
và trong th4 thì b	n thêm ph
n variable và giá tr vào sau tên file 
HTML 
src="10banner.swf?txtName=Dominico Savio!"> 
Khi movie load thì nó s t t	o variable "txtname" và %t giá tr cho bin này b"ng 
"Dominico Savio". B	n có th xem trang 10banner.html, 10banner.fla trong cái 
source file  xem chi tit hn. 
B	n có th làm nhiu giá tr mt lúc cng b"ng cách này 
10banner.swf?txtName=Dominico Savio!&gender=male" 
Ngoài l#y bin t) HTML, b	n còn có th l#y bin t) các text file. Cách này thích hp 
khi b	n có nhiu bin  nhp vào Flash, hay giá tr ca các bin quá dài  gn vào 
th4 HTML. B	n ch c
n dùng lnh loadVariables()  làm c iu này. Ví d': 
CODE 
loadVariables("10external.txt", _root); 
B	n có th coi thêm v cách dùng loadVariables()  bên box ActionScript 
[Bài Tp 
Mt ví d' n gin áp d'ng các iu mà b	n v)a h
c trong bài này là làm mt cái 
"news ticker" nh di ây: 
Dòng ch s ch	y t) bên phi qua bên trái cho sut bn tin. B	n có th tham kho 
source fla: 10ticker.fla và test nó  có khái nim thêm v "news ticker" 
1. T	o movie mi 
2. T	o dynamic text field, vi  cao ch v)a 1 hàng, và dài b"ng chiu ngang ca 
stage,  cho d nhn, b	n có th vit vài ch trong ó, nh là "text goes here" 
3. T	o variable cho text field này là text 
4. Ch
n font, nên dùng kiu ch tng t nh Courier New, sao cho b ngang ca 
m.i ch b"ng nhau 
5. Con text field r*i nh#n F8   i thành Movie Clip, và %t cho nó 1 cái tên nh th 
nào tu, b	n 
6. Sau ó thì gn o	n script sau vào movie 
CODE 
onClipEvent(load) { 
 // %t bn tin 
 tickerText = "News Alert: "; 
 tickerText += "Stock prices shoot up sharply with good earnings reports. "; 
 tickerText += "The first manned flight to Mars prepares to leave Earth orbit. "; 
 tickerText += "Your favorite sports team wins championship. "; 
 tickerText += "Scientists find cure for major diseases. "; 
 firstChar = 0; // bt 
u  ch cái 
u tiên 
 lineLength = 50; // s ch cái ti a trên news ticker 
 // thêm các khong trng vào trc dòng tin 
 for(var i=0;i<lineLength;i++) { 
 tickerText = " " + tickerText; 
 } 
} 
onClipEvent(enterFrame) { 
 // phát bn tin 
 text = tickerText.substr(firstChar,lineLength); 
 // thêm ch cái kê tip 
 firstChar++; 
 // phát l	i bn tin sau m.i l
n kt thúc 
 if (firstChar > tickerText.length) { 
 firstChar = 0; 
 } 
} 
Trc tiên b	n t	o ra bin tickerText  cha bn vn news ticker, bin firstChar  
cha giá tr ca ch cái 
u tiên s th#y trong news ticker, và lineLenght là s ch cái 
có th xu#t hin mt lúc trên news ticker. Và t#t c các u c cho vào trong b s 
lý d kin onLoad 
Trong onEnterFrame, Flash s l#y 50 ch cái 
u tiên b& vào bin text ( trong 
dynamic text field)  cho nó hin th lên màn hình. Sau ó di chuyn sang ch cái 
th 2 b"ng câu firstChar++;, và sau cùng là kim tra, nu bn tin ã c phát ht thì 
phát l	i t) 
u. 
6. B	n có th thay  i giá tr ca lineLenght và giá tr ca bn vn trong tickerText  
hiu hn v 2 bin này 
7. Bây gi b	n hãy th dùng loadVariable()  nhp bn tin t) text file vào coi có 
c không. Nu không thì hãy tr l	i ây h&i mình nhe 
Happy flashing 
 Gi th 11: Làm vic vi các con s, Chng này r#t hay và b ích! 
Chúng ta ã nghiên cu v text và strings trong các chng trc. Bây gi chúng ta s 
nghiên cu v nhng con s. B	n s phi 'ng  vi nhng con s trong Action 
Script trong nhiu trng hp, vì vy b	n c
n phi hiu làm sao  s d'ng chúng. 
Nhng phép toán (operator) và nhng hàm (function) v s 
Nhng phép toán n gin 
Chúng ta cng ã h
c qua các phép toán n gin r*i. Bây gi hãy xem l	i nhé. D#u + 
và d#u - s thc hin phép toán cng và tr), d#u * thc hin phép nhân, d#u / thc 
hin phép chia. 
Ngoài ra, b	n cng có th s d'ng nhng phép toán nh +=, -=, *=, /=  làm n 
gin cho code ca b	n. L#y ví d' hai câu lnh di ây s thc hin cùng mt công 
vic là cng thêm 7 và bin a 
CODE 
a = a + 7; 
a += 7; 
Nhng phép so sánh 
Nhng phép toán so sánh nh ==  so sánh hai s xem có b"ng nhau không, > (ln 
hn), = (ln hn ho%c b"ng). Trong Action 
Script chúng ta có th so sánh mt s nguyên vi mt s thc. Ví d' nh 7.2 s ln 
hn 7. 
Math.abs 
+i tng Math cha mt tp hp các hàm x lý các con s. Hàm Math.abs s tr v 
giá tr tuyt i ca mt s. B	n hãy th o	n code này xem kt qu th nào nhé: 
CODE 
trace(Math.abs(-7)); 
Math.round 
Nu b	n có mt s thc, nhng b	n l	i mun hin th cho ngi dùng xem di d	ng 
s nguyên thay vì phi cho h
 xem các con s ph
n thp phân, b	n hãy s d'ng hàm 
Math.round. Th nhé: 
CODE 
trace(Math.round(7.2)); 
Math.ceil, Math.floor 
Hai hàm khác dùng  làm tròn s thc thành s nguyên là Math.ceil và Math.floor. 
Hàm Math.ceil s làm tròn s lên và Math.floor s làm tròn s xung. Th nhé: 
CODE 
trace(Math.ceil(7.2)); 
trace(Math.floor(8.3)); 
Math.min, Math.max 
Các b	n có th s d'ng hai hàm này  tìm s ln hn và s nh& hn trong hai s. Ví 
d' hàm Math.min(4, 5); s tr v 4, Min.math(4, 5); s tr v 5 
Math.pow 
+ây là hàm  l#y ly th)a, cng n gin thôi, tham s th nh#t là c s, tham s th 
hai là ly th)a. Ví d' b	n mun l#y 4 lu5 th)a 3 thì vit th này 
CODE 
Math.pow(4, 3); 
Math.sqrt+ây là hàm  tính cn, nhng mà mình xin nói trc luôn là ngoài hàm 
Math.sqrt, b	n còn có th s d'ng hàm Math.pow vi ly th)a nh& hn 1  tính cn. 
Ví d' mun l#y cn 2 ca 4 thì có th s d'ng 
CODE 
Math.pow(4, .5); 
ho%c 
Math.sqrt(4); 
C hai cách trên u ra cùng mt kt qu là 2. 
Hàm s l!ng giác 
Nhng hàm ca object class mà các b	n c bit  trên có v4 nh r#t d h
c. Nhng 
còn nhng hàm v lng giác nh sin, cosin thì “khó nut” hn nhiu. M%c dù b	n có 
th b& qua nhng hàm này nhng nhng hàm lng giác này r#t hu ích và hay trong 
vic t	o nhng ng d'ng trong Flash. Vy chúng ta hãy cùng tìm hiu cách nó làm 
vic nhé! 
Hàm sin và cosin s d'ng qua Math.sin và Math.cosin, biu din mi quan h gia 
ng th0ng vi ng cong ca mt ng tròn. 
Hình di ây biu din mt vòng tròn vi mt s im c ánh d#u b"ng các ch. 
Hãy tng tng tâm ca vòng tròn  to	  0,0; bán kính ca ng tròn b"ng 1. Vì 
th, im trên cùng s có to	  0,1 và im tn cùng bên phi s có to	  1,0 
Bây gi b	n hãy tng tng vòng tròn trên là mt ng th0ng. Bt 
u t) im “a” 
có to	  1,0 n im 0,-1 qua -1,0 r*i qua 0,1 và cui cùng tr v 1,0. 
Trong Flash, và cng nh trong các ngôn ng lp trình khác, chúng ta nh v mt vt 
b#t k, b"ng to	  x, y ca chúng. Vì th, vic chuyn mt im trên ng th0ng 
thành mt im có to	  x, y trên ng tròn r#t hu d'ng. +ó là nhng gì mà hàm 
sin và cosin thc hin. Ví d' nh chúng ta %t im “a” là im bt 
u ca ng 
th0ng ca ng tròn, b	n có s d'ng hàm sin và cosin ca 0  tính to	  x, y ca 
im “a” trên ng tròn. T#t nhiên, Math.cos(0) s tr v giá tr 1, Math.sin(0) s tr 
v giá tr 0. Kt qu s tr v to	  ca im “a” 1,0 
Vy im “c” s n"m  âu trên ng tròn? Nu du.i ng tròn ra s có  dài 
b"ng 6.28 l
n bán kính, do bán kính b"ng 1 nên  dài s b"ng 6.28. +ây là xu#t x 
ca h"ng s pi. Pi b"ng 3.14, b"ng mt na  dài ca ng tròn. 
+ dài ca ng tròn là 6.28 thì mt ph
n t  dài ng tròn là 1.57. +im ó 
tng ng vi im “c”. Hàm Math.cos(1.57) s tr v mt giá tr r#t nh&, g
n b"ng 0. 
Hàm Math.sin(1.57) s tr v giá tr g
n b"ng -1. Ch g
n b"ng ch không b"ng vì 
h"ng s pi không chính xác b"ng 3.14, ch là g
n b"ng thôi. 
B	n có th s d'ng cách này  chuyn các im trên ng tròn thành im có to	 
 x,y 
Vy thì nó có ích nh th nào? Gi s nh b	n mun t	o mt movieclip bay quanh 
màn hình trong mt vòng tròn. Làm sao  làm c iu ó? Nu làm b"ng frame có 
th phi tn hàng trm frame . Ho%c cách khác là có th dùng hàm Math.cos và 
Math.sin  tính chuyn sang to	  x,y quanh vòng tròn. 
Trong o	n code di ây, khi cng thêm n, movie clip s chuyn ng d
c theo 
ng tròn. Hàm Math.cos s tính ra giá tr x và hàm Math.sin s tính ra giá tr y, 
chúng s c nhân thêm vi giá tr ca radius  tng kích thc ca ng tròn. 
Giá tr ca centerX và centerY s c cng thêm cho các to	  x, y, vì th tâm 
ng tròn bây gi không còn  0,0 na mà s  v trí 150,150 
CODE 
onClipEvent(load) { 
 n = 0; 
 radius = 100; 
 centerX = 150; 
 centerY = 150; 
} 
onClipEvent(enterFrame) { 
 n += .1; 
 this._x = Math.cos(n) * radius + centerX; 
 this._y = Math.sin(n) * radius + centerY; 
} 
Ch (string) và s (number) 
Có r#t nhiu cách  chuyn  i t) chu.i sang s và ngc l	i. Ví d' nh trng hp 
ngi dùng nhp mt s vào text field, b	n s nhn giá tr ó và cng thêm mt. Hãy 
xem o	n code sau ây, num là mt bin giá tr text field 
CODE 
b = num + 1; 
Nu num = 42, vy thì b s là 43, úng không? Xin tr li là sai, kt qu b là 421, n 
gin bi vì num là mt chu.i (string) ch không phi là mt s, vì th khi chúng ta 
thc hin phép cng num vi 1 có ngh(a là cng ký t “1” vào chu.i num ang có giá 
tr “42”. 
+ làm cho Flash hiu num là mt s, b	n có th s d'ng mt trong hai hàm sau ây 
 chuyn mt chu.i thành s. Hàm parseInt chuyn mt chu.i thành kiu s nguyên, 
hàm parseFloat chuyn mt chu.i thành kiu s thc. Ví d' hàm parseInt(“42”) s tr 
v giá tr là 42, nu chúng ta s d'ng parseInt(“42.9”) thì cng s nhn c giá tr là 
42 bi vì hàm parseInt không làm tròn s, nó ch l#y ph
n nguyên mà thôi. Còn nu 
s d'ng hàm parseFloat(“42.9”) b	n s nhn c giá tr là 42.9, mun làm tròn các 
b	n có th s d'ng hàm Math.round(parseFloat(“42.9”)). Hàm parseFloat cng s tr 
v mt mt s nguyên nu tham s truyn vào là mt chu.i s nguyên. Ví d' 
parseFloat(“42”) s cho ta s 42. Tr) trng hp b	n mun tr v mt giá tr s 
nguyên, còn không b	n nên s d'ng hàm parseFloat. 
Mt nét r#t %c bit và r#t hay ca hàm parseInt là có th chuyn mt chu.i thành mt 
s nhng thành nhiu d	ng h s khác nhau. Hãy xem mt ví d' cho d hiu: 
CODE 
parseInt(“FF”, 16); 
Hàm này s tr v giá tr là 255, ý ngh(a ca nó là chuyn chu.i cha s FF là mt s 
hexa h s 16 thành mt s h nguyên h s 10. 
Ngc l	i,  chuyn t) mt s sang mt chu.i, hãy s d'ng hàm toString. Hàm này 
s ho	t ng khác vi hàm parse, bi vì nó ho	t ng bên trong m.i bin, g
i hàm 
này sau d#u ch#m (.). Xem ví d' nhé: 
CODE 
a = 135; 
trace(a.toString() + 1); 
Kt qu s là 1351. 
Chúng ta cng có th s d'ng hàm toString  chuyn mt s thành mt chu.i cha 
s di mt h s khác. Ví d' a.toString(16) s tr v kt qu là chu.i “ff” 
S ng#u nhiên 
T	o s ng$u nhiên là mt ph
n quan tr
ng trong công vic thit k game và mt s 
ho	t hình. Bi vì nu không có sô ng$u nhiên thì nhng o	n phim ca b	n s ch	y 
ging nhau, không còn gì thú v na! 
+ t	o s ng$u nhiên, b	n có th s d'ng hàm Math.random(). Hàm này s tr v mt 
giá tr t) 0.0 n 1.0 nhng thng thì không tr v giá tr b"ng 1.0 
Hãy xem ví d' di ây, b	n s nhn c con s ng$u nhiên trong ca s OutPut 
CODE 
trace(Math.random()); 
Kt qu tr v 	i lo	i ging nh 0.023268056102097, nhng m.i l
n l	i khác nhau. 
Mt ví d' khác là b	n c
n t	o mt s ng$u nhiên t) 1 n 10, vic này r#t n gin, 
ch c
n nhân thêm s ng$u nhiên cho 10. +o	n code sau s cho ta con s ng$u nhiên 
t) 0.0 n 10.0 
CODE 
trace(Math.random() * 10); 
Nhng cái chúng ta c
n là con s ng$u nhiên t) 1.0 n 10.0 ch không phi t) 0.0 
n 10.0, vì th, hãy cng thêm 1 
CODE 
trace(Math.random() * 10 + 1); 
Bây gi thì kt qu tr v là 1.0 n 11.0 nhng s không có kt qu 11.0. Hãy s 
d'ng hàm Math.floor  làm tròn xung. 
CODE 
trace(Math.floor(Math.random() * 10 + 1)); 
Tht ra thì con s ng$u nhiên trong máy tính cng cha tht s ng$u nhiên. Bi vì nó 
không tht s thay  i trong b vi x lý. Thay vào ó s có mt con s chu!n, mt 
con s nào ó không bit trc c nh là gi ho%c phút ca h thng, con s này 
s c a và mt biu thc r#t phc t	p, r#t r#t phc t	p mà chúng ta không th 
oán c. Kt qu tr v cho chúng ta kt qu dng nh là ng$u nhiên. Kt qu này 
s c a và mt hàm tính mt l
n na là lu l	i thành con s chu!n  tính ng$u 
nhiên cho l
n tip theo. 
Hãy ngh( v iu này, s ng$u nhiên trong i sng tht s cng không tht s ng$u 
nhiên. Nu chúng ta gi mt m%t ca con xúc xc, th!y úng theo mt hng tht 
chính xác, chúng ta s có cùng mt kt qu 
+c r*i, bây gi hãy th t	o mt s ng$u nhiên t) 3 n 7. Làm th nào ây? Ah, có 
mt th thut cho b	n ây: 
CODE 
trace(Math.floor(Math.random() * 5 + 3); 
Trong ph	m vi t) 3 n 7 s có t#t c là 5 s nguyên 3, 4, 5, 6, và 7. Th còn trong 
ph	m vi t) 50 n 100 thì sao 
CODE 
trace(Math.floor(Math.random() * 51 + 50); 
 Là s 51 bi vì trong ph	m vi t) 50 n 100 có 51 s, còn nu t) 51 n 100 s là 
CODE 
trace(Math.floor(Math.random() * 50 + 50); 
Mt cách  th xem ph	m vi ca b	n có úng nh ý ca mình không, ó là hãy th 
vi s nh& nh#t và s ln nh#t thay cho Math.random(). Giá tr nh& nh#t ca hàm 
Math.random() là 0, hãy th vi s 0 nhé 
CODE 
trace(0 * 51 + 50); 
Giá tr ln nh#t ca Math.random() s không chính xác b"ng 1.0 mà s là g
n b"ng, 
vy chúng ta hãy th vi giá tr là 0.9999 
CODE 
trace(.9999 * 51 + 50); 
Hãy th xem có úng không nhé! 
Di ây là mt ví d' na r#t thú v, movie clip ca b	n s nhy n nhng v trí b#t 
k, 
CODE 
onClipEvent(enterFrame) { 
 this._x = Math.random()*550; 
 this._y = Math.random()*400; 
} 
Luyn tp: To mt chng trình máy tính 
n gi	n 
Hãy bt tay vào vic thit k mt chng trình máy tính n gin nhé. 
- M mt movie mi trong Flash. Movie ca chúng ta s ging nh hình di ây 
Chúng ta s có 10 nút  nhp 10 s t) 0 n 9, các nút các phép toán, phím =, d#u 
ch#m thp phân, phím C  xóa màn hình. Mt text field %t  trên  hin th nhng 
s ngi dùng b#m, text field này s liên kt vi bin display. 
- Trong m.i movie clip ca m.i nút b#m, chèn o	n code sau 
CODE 
on (release) { 
 _parent.keyPressed(this._name); 
} 
 Khi mt nút b#t k, c nh#n thì hàm keyPressed s c g
i  level ngoài mà  ây 
s là level root. Hàm này s truyn tên ca movie clip. 
- Quay tr l	i level root, m.i movie clip phi có mt tên riêng, không c trùng. +%t 
tên ca movie clip theo s ca nó, ví d' nút s 5 s có tên là 5, d#u ch#m thp phân có 
tên là “.”. D#u cng, d#u tr), d#u nhân, d#u chia, d#u b"ng, nút C l
n lt %t tên là 
plus, minus, multiply, divide, equals, clear. 
- Ok, bây gi bt 
u vit code nhé! Code này s n"m  ngoài movie frame 
CODE 
// trc tiên, xoá màn hình c 
clearAll(); 
function clearAll() { 
 display = "0"; // giá tr m%c nh là 0 
 memory = 0; // b nh 
 operation = "none"; // cha có phép toán nào c 
 newNum = true; // ánh d#u khi nào ã nhp xong mt s 
} 
Bin display là mt chu.i (string), s liên kt vi text field hin th ni dung ngi 
dùng b#m. Nó s bt 
u vi giá tr b"ng 0, có ngh(a là khi ngi dùng mi bt máy 
lên thì s m%c nh là s 0 
Bin memory lu l	i con s trc ó  thc hin phép tính. +iu này r#t c
n thit, ví 
d' b	n b#m s 5, +, 7 thì s 5 nhp vào, khi b	n b#m d#u cng, màn hình s c xóa 
và s 5 c lu vào memory, s 7 c nhp tip và s thc hin phép tính 5 và 7. 
Phép toán ngi dùng ch
n cng c
n c lu vào b nh. Khi ngi dùng ã nh#n 
5, +, 7 r*i, sau ó b#m d#u = ho%c mt phép toán khác thì chng trình s g
i l	i phép 
toán c ã c lu trong bin operation  thc hin phép toán trc ca 5 vi 7. 
Bin newNum nh là mt bin c hiu  báo cho chng trình bit khi nào s kt 
thúc mt phép toán. Ví d' khi ngi dùng b#m 5, +, 7 r*i sau ó b#m mt phép toán 
khác thì kt qu s c lu l	i  tính toán tip, lúc này phép toán cha kt thúc, 
newNum = false. Còn nu ngi dùng b#m d#u = thì màn hình s hin ra kt qu và 
kt thúc luôn phép toán  chuyn sang phép toán mi, newNum = true. 
- Ph
n tip theo là hàm keyPressed  x lý khi m.i nút c nh#n. Hàm keyPressed 
s s d'ng c#u trúc switch thay cho c#u trúc if, then, else. C hai cách u ho	t ng 
tng t nhng cách vit hi khác, b	n hãy xem nhé: 
CODE 
// hàm này c g
i bi nút nh#n 
function keyPressed(keyName) { 
 // do something different for different keys 
 switch (keyName) { 
 case "clear" : // khi nh#n nút C 
 clearAll(); 
 break; 
 case "plus" : // các phép toán cng, tr), nhân, chia 
 operate(keyName); 
 break; 
 case "minus" : 
 operate(keyName); 
 break; 
 case "multiply" : 
 operate(keyName); 
 break; 
 case "divide" : 
 operate(keyName); 
 break; 
 case "equals" : 
 operate(keyName); 
 break; 
 default : // các s 
 if (newNum) { // hin th s mi trên màn hình 
 display = keyName; 
 newNum = false; 
 if (display == "0") newNum = true; // s không bt 
u vi s 0 
 } else { 
 display += keyName; // ni thêm s vào màn hình 
 } 
 break; 
 } 
} 
Khi ngi dùng nh#n nút C thì hàm clearAll() s c g
i, tng t khi ngi dùng 
nh#n các phép toán thì hàm operate s c g
i 
- Hàm operate s thc hin tính toán. Nó s tìm ra phép toán  gia con s trcó và 
con s hin thi, s d'ng hàm parseFloat  chuyn chu.i thành s.Operation có giá 
tr b"ng none khi nhp mt s mi sau khi thc hin xong phép toán và màn hình 
c xóa. 
CODE 
// thc hin phép toán trc 
function operate(keyName) { 
 switch (operation) { 
 case "none" : // s 
u tiên 
 memory = parseFloat(display); // lu l	i s trc 
 break; 
 case "plus" : // thc hin phép toán 
 memory += parseFloat(display); 
 break; 
 case "minus" : 
 memory -= parseFloat(display); 
 break; 
 case "multiply" : 
 memory *= parseFloat(display); 
 break; 
 case "divide" : 
 memory /= parseFloat(display); 
 break; 
 } 
 // equals operation is like a clear, but results are displayed 
 if (keyName == "equals") { 
 operation = "none"; 
 } else { 
 operation = keyName; // remember this operation for next time 
 } 
 display = memory.toString(); // display result 
 newNum = true; // prepare for next number 
} 
Luyn tp: Làm nhng hành tinh bay quanh qu$ 
o 
Trong ví d' v lng giác trong ph
n trc, b	n ã bit cách làm mt movie clip 
quanh quay mt vòng tròn. Bây gi hãy áp d'ng nhng kin thc ó  làm mt 
movie 4 hành tinh xoay quang m%t tri, hành tinh th 3 s có mt v tinh. 
- T	o mt movie mi trong Flash 
T	o 6 movie clip là các vòng tròn, %t tên l
n lt là sun, mercury, venus, earth, mars, 
and moo
            Các file đính kèm theo tài liệu này:
 24_Gio_Hoc_Flash_2267_89039819.pdf 24_Gio_Hoc_Flash_2267_89039819.pdf