Upload
phuong-anh-nguyen
View
218
Download
0
Embed Size (px)
Citation preview
Bi 1 : Lm quen vi ca s Flash- T hc lp trnh
Flash
Nu tng thch th vi nhng tr chi trn my tnh, chc c lc bn m
c hnh ngh lp trnh tr chi, nhng cha bit bt u t u. Bn
c th bt u vi Flash, cng c to ra tr chi trn trang Web. Flash
gip dng nn cc hot cnh, trong nhng vt th, nhng nhn vt
hot ng theo quy tc no v c th c s thng minh nht nh m
ngi ta gi l tr tu nhn to (artificial intelligence). Khng ch tr
chi, Flash cho php to ra chng trnh bt k chy trn trang Web.
Flash l cng c ca ngi chuyn nghip nhng vn d chu i vi
ngi l m. Ch cn chm ch trong tng bc nh, bn s i rt xa.
Trc ht, bn cn ci t phn mm Flash. lm quen vi Flash, bn c
th dng t phin bn Flash 7 tr v sau. Flash 7 cn gi l Flash MX 2004,
chy tt trn my tnh ca nm 2004. My tnh c vn c th gip bn thu
c rt nhiu k nng mi. Nhng ni dung nng cao i hi phi c phin
bn Flash mi hoc cc cng c b sung (chng hn Flex Builder) s c
trnh by sau khi bn nm vng phn c bn.
Sau khu ci t phn mm, bn hy khi ng Flash. Khi thy mt ca s
nh, bn chn mc Flash Document phn Create New, bt u lm quen
vi cc th bn trong ca s Flash.
Ca s Flash gm nhiu bng chn (panel), gip bn thc hin nhng vic
khc nhau. Chng hn, hnh 1 l bng chn Color Mixer, cho php chn mu
cho hnh v. Bn c th bm vo ch no trong khung mu chn hoc
ghi tr s vo cc R (Red), G (Green) hoc B (Blue). l ba tr s xc nh
mu bt k. Alpha gip quy nh trong sut ca mu.
Bn c th di chuyn bng chn i u cng c, thun tin cho cng
vic. Mun vy, bn ch cn tr vo gc trn, bn tri ca bng chn , gi
phm tri ca chut, ko i. Mun bng chn u vo ch c, bn cng lm
ging vy: nm ko gc trn, bn tri ca bng chn, a n v v tr c nh
bn phi ca s Flash.
V c kh nhiu bng chn nn khi cha dng n bng chn no , bn nn
cho n co li bng cch bm mt pht vo thanh tiu ca n. Khi cn
dng bng chn, mun cho n bung ra, bn li bm mt pht vo thanh tiu
.
Bn c th dp c nhm bng chn bn hng ca s Flash bng cch bm
vo du mi tn mu trng cnh sn ca nhm (hnh 2). Mun cho nhm
bng chn bung ra, bn bm vo du mi tn trng ln na.
Bn thy gia ca s Flash c mt khung trng trn, mu trng (hnh 3).
chnh l sn khu (stage), ni m bn s xy dng hot cnh, th hin cc
tng sng to. Ta c th to nn cc hnh v trn sn khu, c th co dn v
di chuyn chng ty . Ngi ta gi chng l cc i tng (object).
Bn n bng chn nm bn tri ca s Flash, thng c gi l
bng cng c (tool panel) hay hp cng c (tool box), gip bn v v sa
hnh. Bn th v mt qu banh nha. Bn hy bm vo hnh trn hp cng
c (hoc g phm ch O). l biu tng ca cng c Oval Tool v hnh
-van. (hnh trn l trng hp ring ca hnh -van thi). a con tr chut
vo sn khu, bn thy n i dng thnh du thp. Bn tr vo u trn
sn khu, gi phm Shift v ko chut (gi phm tri ca chut khi di chuyn)
v ra hnh trn (bn gi phm Shift v c hnh trn thay v hnh -
van).
Bn bm vo cng c chn hp cng c (hoc g phm ch V), tr vo u
pha trn, bn tri hnh trn va v, ko chut qua phi, xung di, nhm
cng mt khung chn bao quanh hnh trn. Xong, bn tr vo hnh trn, th
ko n n v tr khc trn sn khu.
Vng mu xm bao quanh sn khu c th xem l hu trng ca sn khu.
Nu bn t hnh trn vo vng xm, n s khng xut hin khi trnh din.
Khi cn cho i tng no xut hin, bn c th ko n t hu trng vo
sn khu.
lu hot cnh to ra (d lc ny qu banh cha nhc nhch g ht),
bn bm vo File thanh trnh n ri chn Save trn trnh n x xung (ni
vn tt l chn File > Save). Bn thy xut hin mt hp thoi (dialog box),
gip bn chn th mc v t tn cho tp tin cha hot cnh, thng gi l
tp tin ngun ca Flash (Flash Document). Tp tin ngun Flash c tn phn
loi l fla.
Bi 2 : Nhn vt v th hin trong lp trnh Flash
Mi khi khi ng Flash, bn lun thy mt ca s nh lit k mt s tp
tin fla m bn m xem hoc to ra trong nhng ln trc. Bn hy
chn tp tin c hnh qu banh do bn v.
Bn tr vo qu banh, gi phm tri ca chut, th ko qu banh qua v tr
khc. C l bn s ngc nhin v v tr c vn cn mt ng trn, khng c
mu t. chnh l nt vin ca hnh trn c to ra bi cng c Oval Tool.
Bn c th quy nh mu ring cho nt vin ca hnh trn. Ta ch cn qu
banh khng c nt vin, bn hy xa nt vin bng cch bm vo nt vin
chn v g phm Delete.
t mu cho qu banh, bn bm vo qu banh chn, bm vo Fill
Color trong bng Color Mixer (t rng bn mun quy nh mu t ch khng
phi mu nt) v chn mu bn thch.
Qu banh hin c ca bn ch l mt hnh v n thun. Mun cho qu banh
tr thnh mt i tng c hnh vi ring, c th iu khin bng cch lp
trnh, trc ht bn cn chuyn i qu banh thnh mt nhn vt (movie clip).
Vi qu banh ang tnh trng c chn, bn ch cn g phm F8. Khi
thy hp thoi Convert to Symbol (hnh 1), bn g Ball (qu banh) t tn
cho nhn vt sp c to ra. Bn cng nn chn im mc ca nhn vt
gia cnh di khung bao ca hnh qu banh bng cch bm vo gia,
di cng trong chn vung nh ca mc Registration. Sau ny, khi ni v
ta ca nhn vt, bn hiu l ta ca im mc.
Sau khi bn bm nt OK trong hp thoi Convert to Symbol, hnh qu banh tr
thnh mt nhn vt. Khc vi nhng hnh v bnh thng trong Flash, nhn
vt c lu tr trong th vin (library). n Ctrl+L (hoc g phm F11), bn
thy bng Library xut hin bn phi ca s Flash, trong c tn nhn vt
Ball, hin l nhn vt u tin trong danh sch cc th c lu tr trong th
vin. Bm vo tn Ball trong bng Library, bn thy chn dung ca nhn vt
Ball hin ra pha trn danh sch.
Th vin cn l ni lu tr nhiu th khc, chng hn nhng m thanh cn
dng cho chng trnh Flash ca bn.
Sau thao tc chuyn i hnh v qu banh thnh nhn vt, qu banh trn sn
khu dng nh khng c g thay i. Thc ra c thay i ln: qu banh
trn sn khu ch l mt th hin (instance) ca nhn vt Ball trong th vin.
Mun c nhiu qu banh, bn c th to ra nhiu th hin khc ca nhn vt
Ball. Hot cnh ca bn c th c rt nhiu qu banh nhng dung lng tp
tin fla tng khng ng k so vi trng hp ch c mt qu banh. Ngoi ra,
nu bn chnh sa chi cho nhn vt Ball trong th vin, mi th hin ca
nhn vt u thay i. Cu trc nhn vt-th hin em n nhng li ch
tuyt vi!
Trc mt, iu nn lm ngay l t tn ring cho th hin u tin ca nhn
vt Ball. Vi qu banh trn sn khu ang tnh trng c chn, bn bm
vo thanh tiu Properties cnh di ca s Flash (hoc n Ctrl+F3)
m bng Properties (hnh 2), ni trnh by cc thuc tnh ca th hin ang
c chn. Trong bng Properties, bn bm vo c dng ch (tn ca th hin) v g tn ball1 (ng : y l th hin u tin ca
nhn vt Ball).
Nu trn sn khu ch c mt th hin duy nht ca nhn vt, bn c th gi
th hin l nhn vt. Nhiu ngi lun dng thut ng nhn vt thay
cho th hin. Khng sao ht, min l bn hiu khi nim.
Bm vo thanh tiu Properties dp bng Properties, bm vo u
trn sn khu thi chn th hin ball1, bn bt u vic lp trnh cch bm
vo thanh tiu Actions (hoc g phm F9) m bng Actions (hnh 3), ni
dng ghi cc cu lnh ActionScript. ActionScript l tn ca ngn ng lp
trnh dng to ra kch bn cho nhng nhn vt Flash. Bm vo khung son
tho cn trng trn ca bng Actions, bn g cu lnh:
?
1 ball1._xscale = 200;
Cu lnh va nu lm cho thuc tnh _xscale ca nhn vt ball1 c tr s l
200 (gn tr s 200 cho bin _xscale ca nhn vt ball1). iu ny ngha l
nhn vt ball1 c ko dn 200% theo phng x (phng ngang).
chy chng trnh (chng trnh hin ch c mt cu lnh), bn n
Ctrl+Enter. Ca s Flash lp tc thay i, nhiu th c giu i. Gia ca
s l mt khung trng c hnh qu banh bu dc, cho thy r rng cu lnh
bn vit c thc hin nghim tc: qu banh c ko dn theo
phng ngang. Kch thc theo phng ngang ca qu banh bu dc gp
i ng knh ca qu banh trn ban u.
dp khung trng hin th kt qu ca chng trnh, bn bm nt gc
trn, bn phi khung trng.
Bi 3 :Khung cht ca hot cnh trong lp trnh Flash
Bn vit cu lnh u tin trong Flash
ball1._xscale = 200;
v chy th chng trnh ch c mt cu lnh y. Trong cu lnh ,
gia tn nhn vt ball1 v tn bin _xscale c du chm phn cch.
Bin _xscale l bin c sn trong mi nhn vt ca Flash. V tri ca cu
lnh c l bin _xscale ca nhn vt ball1.
Ton b cu lnh c l gn tr s 200 cho bin _xscale ca nhn vt ball1.
Khi khng s nhm ln, ta c th gi th hin ball1 ca nhn vt Ball l
nhn vt ball1. Bn ch , cn c du chm phy (;) kt thc cu lnh.
Xem li th mc cha tp tin fla, bn thy c thm tp tin mi thuc loi swf.
Nu tp tin cha qu banh ca bn c tn Ball.fla, tp tin mi c to ra c
tn Ball.swf (ch khc phn phn loi). Trc y, khi bn n Ctrl+Enter, Flash
ghi xung tp tin chng trnh swf v chy chng trnh . Chnh tp tin
swf mi l chng trnh chy c, c th dng trong trang Web. Vic
chuyn i tp tin fla thnh tp tin swf chy c gi l bin dch (compile).
i vi bn, swf l mt chng trnh. i vi ngi xem trang Web, swf l
mt hot cnh (animation) hoc tr chi (game).
Pha trn sn khu, trong bng Timeline, bn thy c mt thanh di vi cc s
1, 5, 10, l s th t ca cc khung hnh (frame), gi tt l khung. Din
bin ca chng trnh trong Flash theo dng thi gian ging nh mt on
phim, nn cng c khi nim khung hnh. Mi ngay di thanh ghi s
th t biu din mt khung hnh. Di nh vy gi l thi tuyn (timeline).
Trong bng Timeline, bn thy s 1 c mt mu hng (hnh 1). Ngi
ta gi l u c (playhead). u c ang khung 1 cho bit bn ang
xem khung 1 (nhng g hin c trn sn khu l ni dung ca khung 1). Trong
tng ng vi khung 1 c ch a be b, ng ni rng c cu lnh
ActionScript c ghi khung 1.
Ni dung ca khung 1 mc nhin c duy tr trong cc khung tip theo tr
khi bn ch ng thay i. Gi s bn mun khung 5, qu banh tr v kch
thc bnh thng, khng b ko dn theo phng ngang na.
Mun vy, trc ht bn bo cho Flash bit c s thay i khung 5 bng
cch bm-phi vo khung 5 (ta c th gi tt nh vy thay v ni r tng
ng vi khung 5), chn mc Convert to Keyframes trong trnh n va hin
ra. Thao tc ny chuyn i khung thng thnh khung then cht (keyframe),
gi tt l khung cht, gip Flash hiu rng phi cn thn xem xt li mi th
khung 5 v n khc vi khung trc.
Chnh bn to ra s khc bit khung 5 bng cch bm vo khung son tho
ca bng Actions (nu khng thy n, bn g phm F9) v g cu lnh:
?
1 ball1._xscale = 100;
Cu lnh nh vy gn tr 100 cho bin _xscale ca nhn vt ball1, quy nh
co dn theo phng ngang ca ball1 l 100%, tc l khng co dn g na.
Vo lc chy chng trnh, khi hin th n khung 5, Flash s thi hnh cu
lnh m bn va vit.
Quan st thi tuyn, bn thy u c nhy n khung 5 (hnh 2), ngha l
nhng g bn thy trn sn khu thuc v khung 5. Ti khung 5 c du trn
mu en cho bit l khung cht. Khung 5 cng c ch a ging nh khung 1
ni rng c cu lnh ActionScript c vit cho khung 5. Nhn ra du trn
en khung 1, c l bn thc mc ngay: Vy khung 1 cng l khung cht?.
Vng, ng vy, khung 1 lun lun l khung cht theo mc nh.
Khung thng ngay trc khung cht c nh du bng mt du ch nht
mu trng. Du nh vy cho thy r s kt thc ca mt lot khung ging
nhau.
n Ctrl+Enter bin dch v chy chng trnh, bn thy qu banh php
phng lin tc do cu lnh ActionScript khung 1 v khung 5 c thi hnh
lp i lp li. ng ca s Ball.swf (ca s trnh din hot cnh) va m, ri
g phm F12 (hoc chn File > Publish Preview > Default HTML), bn thy
ca s trnh duyt xut hin, trnh by tp tin Ball.html. Qu banh ca bn
din tr thoi mi trong ca s trnh duyt. l nh tp tin Ball.html c
cha lin kt tr n tp tin Ball.swf. iu ny gip bn hnh dung hot cnh
ca mnh trng ra sao khi c t trong trang Web.
Xem xong, bn ng ca s trnh duyt, tr v ca s Flash, n Ctrl+S lu
li thnh qu ca mnh trong tp tin Ball.fla.
Bi 4 : Hnh vi ca nhn vt T hc lp trnh Flash
Bn hy m li tp tin fla cha qu banh. Do hnh nh qu banh c
ko dn theo phng ngang hin th trong cc khung 1-4, trong khi hnh
nh qu banh bnh thng ch hin th trong mt khung duy nht (khung
5) nn bn thy khng r lm s php phng ca qu banh khi chy
hot cnh.
mt c thi gian nhn bit hnh nh khung 5, bn bm-phi vo khung
10 trong thi tuyn, chn mc Insert Frame. Thao tc ny to thm cc khung
6-10 (hnh 1). l cc khung thng nm sau khung 5 (khung cht) nn c
ni dung ging ht khung 5. khung 10 c du ch nht mu trng, nh
du s kt thc ca mt lot khung ging nhau. Hot cnh ca bn gi y c
tt c 10 khung. Bn n Ctrl+Enter xem th nha.
ng ca s trnh din hot cnh, bn hy ly thm mt qu banh na t th
vin. C th, bn g phm F11 m bng Library, tr vo mc Ball trong
bng (hoc tr vo hnh qu banh ngay trn mc Ball), ko n vo sn
khu. Bn c ngay th hin th hai ca nhn vt Ball trn sn khu.
Nhn vo thi tuyn, bn thy cc khung 5-10 c t en. l cch hin th
nhc bn rng qu banh th hai ch hin din trong cc khung 5-10 ging
nhau m thi. Thao tc to thm qu banh khung 10 khng c hiu lc vi
lot khung ging nhau 1-4. n Ctrl+Enter, bn thy qu banh th hai chp
chp v n khng hin din trong cc khung 1-4.
to c qu banh th hai hin din trong mi khung ca hot cnh,
khng b cch tr bi s hin din ca cc khung cht, bn cn c mt lp
(layer) mi. Bn n Ctrl+Z hy b thao tc to qu banh th hai va thc
hin, bm vo biu tng Insert Layer (gc di, bn tri bng Timeline)
to thm lp mi mang tn Layer 2 nm bn trn lp Layer 1 c sn. Xong,
bn li ko qu banh t th vin vo sn khu (hnh 2). n Ctrl+Enter, bn
thy qu banh th hai khng chp chp nh trc na v n hin din trong
mi khung.
Vic gii quyt vn nho nh va t ra gip bn hiu c cu trc lp
ca Flash. Hot cnh c th gm nhiu lp chng ln nhau. Mi lp c nhng
khung cht ring bit.
Qu banh trong lp Layer 2 hin thi cha nhc nhch g ht. Bn c th p
dng kinh nghim t qu banh th nht cho qu banh th hai: t tn cho qu
banh th hai l ball2, to khung cht v tr ty trong thi tuyn ca Layer 2
v ghi cu lnh ActionScript ball2._xscale = ti cc khung cht.
Tuy nhin, l chuyn c, c l khng cn lp li. Bn c th t cu hi:
Nu nh c hng chc qu banh trn sn khu hot ng gng nhau, l no
c phi lp trnh ln lt cho tng qu banh?. Trong trng hp nh vy,
bn nn lp trnh cho nhn vt trong th vin thay v lp trnh cho tng th
hin ca nhn vt trn sn khu. Nh vy, mi qu banh khi c a t th
vin vo sn khu u t bit php phng, khng cn ch dn g na.
thc hin nh va nu, trc ht bn xa Layer 1 bng cch chn Layer
1 trong ca s Timeline v bm vo biu tng thng rc . Lm nh vy
ngha l xa i qu banh th nht v mi din xut ca n, ch li qu
banh th hai cha bit din xut.
lp trnh cho nhn vt Ball, bn bm kp vo hnh qu banh trong bng
Library. Sn khu bin mt, thay vo l nhn vt Ball trn nn trng. Mi
vic bn sp lm ch tc ng vo nhn vt Ball. Tuy nhin, nu thy nhn vt
Ball ang trong tnh trng c chn (trng m m), bn bm vo nn
trng thi chn.
Bn g phm F9 m bng Actions, g cu lnh cho khung 1:
1|
_xscale = 200;
1|
Khc vi trc, trong cu lnh va nu ta khng cn ghi tn ca th hin no
c v y cu lnh c vit bn trong nhn vt Ball, Flash t ng hiu
rng bin _xscale l thuc tnh ca nhn vt Ball. Thi tuyn trong ca s
Timeline cng l ca ring nhn vt Ball.
Nh tng lm, bn bm-phi vo khung 5 trong thi tuyn, chn Insert
Keyframe, g cu lnh trong bng Actions:
1|
_xscale = 100;
1|
Bn bm-phi vo khung 10, chn Insert Frame chn thm cc khung
thng 6-10. Thao tc bn va lm quy nh xong hnh vi ca nhn vt.
Bn chn mc Scene 1 (trn bng Timeline) tr v vi sn khu. a vo
sn khu thm hai qu banh na t th vin v n Ctrl+Enter, bn thy c ba
qu banh u php phng nh nhau.
Bi 5 : Hnh vi ca th hin T hc lp trnh Flash
Bn to c hot cnh gm ba qu banh php phng. l ba th
hin ca nhn vt Ball trong th vin, l nhn vt c hnh vi php
phng. Tuy nhin, s c nhng lc bn mun mt th hin no c
hnh vi khc bit vi ng loi ca n. Flash cho php bn lp
trnh cho ring th hin c chn.
Trong ba qu banh trn sn khu, bn hy bm chn mt qu banh v g
phm F9 m bng Actions (hnh 1). Bm vo khung son tho ca ca s
Actions, bn g ni dung nh sau:
1
2
3
4
5
onClipEvent(mouseDown) {
_y = _y + 20;
}
Nhng g bn ghi trong bng Actions theo cch nh vy ch c hiu lc i vi
th hin c chn. y khng cn l mt cu lnh ActionScript nh trc,
m l mt on m ActionScript b n c gi l hm (function). Phn u
tin onClipEvent l tn hm. Phn ghi trong cp du ngoc l i mc
(parameter, argument) ca hm. i mc ca hm ( y c th l
mouseDown) cung cp thng tin cho hot ng ca hm. Hot ng ca hm
c din t bi thn hm, l phn nm trong cp du gp { }. Phn thn
hm thng c ghi tht vo trong d phn bit vi tn hm (iu ny
khng bt buc).
Hm onClipEvent dng din t vic cn lm khi xy ra mt tnh hung
(event) no i vi th hin ang xt. Ngi ta gi l hm x l tnh
hung (event handler). Khi lp trnh cho th hin (quy nh hnh vi ca n),
bn ch c php vit cc hm x l tnh hung, khng th vit cu lnh ty
bn ngoi phm vi ca hm x l tnh hung.
Vi i mc l mouseDown, hm onClipEvent tr thnh hm x l tnh hung
bm chut, ngha l n s c thi hnh khi ta bm chut mt pht (bm
phm tri). Phn thn hm ch gm mt cu lnh _y = _y + 20; nhm ni rng
ly bin _y cng vi 20, ri ly kt qu ca php cng gn vo bin _y.
Ni cch khc, cu lnh va nu lm cho tr ca bin _y tng thm mt lng
l 20 im nh hoc 20 pi-xn (pixel).
Bin _y l bin c sn bn trong mi th hin, quy nh tung ca th hin
trn sn khu. Du gch di trong tn bin _y nhm nhn mnh rng y l
bin c sn, khng phi bin do bn to ra.
Chc l c c bin _x bn trong mi th hin, quy nh honh ca th hin
trn sn khu?. Bn on ng. y ta ch thay i bin _y, khng thay i
bin _x, do th hin c chn ch dch chuyn theo phng thng ng.
n Ctrl+Enter chy chng trnh, bn thy ba qu banh php phng nh
c, dng nh khng c g mi. Tuy nhin, khi bn bm chut vo u
trong hot cnh, qu banh va c lp trnh x dch xung di mt cht.
C mi ln bn bm chut, qu banh li tt xung. iu ny khng xy ra vi
hai qu banh cn li.
C l bn thc mc: Tung tng ln, qu banh phi x dch ln trn ch
nh?. Khc vi h ta dng trong ton hc ph thng, h ta dng trong
lnh vc ha my tnh c trc y hng xung di (trc x vn hng qua
phi). Trong Flash, gc trn, bn tri ca sn khu l gc ca h ta . Cch
nh v bng h ta nh vy thc ra rt t nhin, ta nh khi d tm mt t
trong vn bn, bn c t tri qua phi, t trn xung di.
qu banh x dch ln trn (ngc chiu trc tung), bn phi cho tung
gim. Bn c th sa cu lnh trong thn hm thnh _y = _y 20; (lm cho tr
ca bin _y gim i 20). Th chy chng trnh, bn thy r iu .
Thay v vit _y = _y 20; bn c th vit cch khc: y -= 20; . Tng t, thay
v vit _y = _y + 20; bn c th vit: y += 20; . Cng nh du gn =, du -= v
+= rt thng dng khi lp trnh. Chng m t thao tc nht nh trn bin no
nn c gi l cc tc t (operator).
Nu mun qu banh t di chuyn, khng cn i bm chut, chc l ch cn
vit cu lnh _y += 20; thay v t n vo bn trong hm x l tnh hung?.
Khi hc lp trnh, bn s c rt nhiu thc mc. Nhng lc nh vy, bn c
mnh dn kim tra d on ca mnh. Xa hm x l tnh hung, ch ghi cu
lnh n gin _y += 20; v n Ctrl+Enter, bn thy chng trnh chy c,
nhng vic bm chut khng cn tc dng nh trc. Pha bn phi bng
xut hin bng Output vi nhng dng ch nhng nht (hnh 2). Trong bng
, t u tin Error cho bn bit chng trnh ca mnh c li. Thng bo li
Statement must appear within on/onClipEvent handler nhc bn rng cu lnh
phi c t bn trong hm x l tnh hung onClipEvent. y l quy nh
bt buc khi bn mun to ra hnh vi cho ring th hin c chn.
Bi 6: Cu lnh iu kin T hc lp trnh Flash Bn thy thng bo li xut hin bng Output. Khi bn dng chng trnh
(ng ca s swf), thng bo li vn cn lu li trong bng Output pha phi ca
s Flash bn nghin ngm.
Li nh vy gi l li lc bin dch (compile-time error). Chng trnh khng chy c
nu c li lc bin dch. Nu chng trnh chy c nhng li t ra k cc, khng
ng nh d kin, ngi ta ni rng chng trnh c li lc chy (run-time error).
Trong chng trnh ca mnh, bn c th ch ng a thng bo ra bng Output. Nh
vy, khi chy chng trnh, bn d dng theo di din bin thc t, d dng pht hin
nguyn nhn gy ra li lc chy. th a thng bo ra bng Output, bn hy bm
chn qu banh ang c li bin dch, g phm F9 m li bng Actions (nu cn). Trong
bng Actions, bn xa cu lnh sai, g on m mi nh sau:
onClipEvent(mouseDown) {
_y -= 20;
trace(Ti i ln y.);
}
Hm onClipEvent gi y c hai cu lnh. Cu lnh u tin lm cho qu banh x dch
ln trn 20 im nh. Cu lnh th hai l cu lnh gi hm trace, lm cho qu banh bit
thng bo v hnh ng ca mnh! Thng bo Ti i ln y l i mc ca hm trace.
V mt cu trc, thng bo Ti i ln y l mt chui k t, gi tt l chui (string).
Dng b g UniKey thng dng, bn d dng to ra k t Vit c du trong chui. Khi
dng chui, bn ng qun m u v kt thc chui bng du nhy ().
n Ctrl+Enter chy chng trnh, bn thy mi ln bm chut, qu banh x dch ln
trn v thng bo Ti i ln y xut hin bng Output (hnh 1). Bn hy bm chut
lin tip nhiu ln thy qu banh i mt tiu. l khi tung _y vt ra ngoi phm
vi hin th ca sn khu.
qu banh khng i mt, bn dng chng trnh, sa ni dung hm onClipEvent nh
sau:
onClipEvent(mouseDown) {
if(_y > 0) {
_y -= 20;
trace(Ti i ln y.);
}
}
Nhng g bn va vit bn trong hm onClipEvent l mt cu lnh iu kin. Cu lnh y
ng : nu tung _y ca qu banh ln hn 0 th mi x dch qu banh v a ra thng
bo Ti i ln y bng Output. iu kin tung _y ln hn 0 phi c vit trong
cp du ngoc ( ), t sau t if. Nhng vic cn lm khi iu kin c tha phi c
vit bn trong cp du gp { }, t sau cp du ngoc ( ). Flash hiu c nhng g
bn vit, cn tun th nghim ngt cc quy tc va nu.
Chy li chng trnh v bm chut nhiu ln, bn thy qu banh rt cuc dng li,
khng thm nhc nhch na. l khi iu kin tung _y ln hn 0 khng c
tha, tc l khi _y nh hn hoc bng 0. Bn ch , tung ca qu banh l tung ca
im mc. Chnh bn quy nh im mc nm gia cnh di khung bao ca qu
banh.
Nu mun qu banh ni nng g khi iu kin tung _y ln hn 0 khng c
tha, ch khng im lm, bn vit thm vo hm onClipEvent:
onClipEvent(mouseDown) {
if(_y > 0) {
_y -= 20;
trace(Ti i ln y.);
}
else {
trace(Ti khng i na.);
}
}
T else gip bn din t trng hp ngc vi trng hp c nu bi t if. Vic cn
lm khi iu kin tung _y ln hn 0 khng c tha phi c ghi bn trong cp
du gp { } theo sau t else. Nh vit nh vy, lc chy chng trnh, qu banh thng
bo Ti khng i na nu tung ca n khng ln hn 0. Li t chi cho bn thy
qu banh tuy tr tr nhng vn hiu bn ang bm chut thc gic n.
Vi hai qu banh cn li cha c c tnh, ta cng th lp trnh cho chng c hnh vi
khc bit. Trc khi lm nh vy, bn nn cho hai qu banh cn li c mu khc cho d
phn bit: mt xanh, mt cam chng hn. Bn khng th chn mu t khc nhau cho cc
th hin khc nhau ca mt nhn vt nhng c th chn mu nhum (tint color) khc
nhau cho chng. C th, bn hy chn qu banh cha c c tnh, n Ctrl+F3 m
ca s Properties tng ng, chn Tint trong Color, bm vo mu k bn v chn
mu trong bng mu. Mun mu nhum ln t mu t, bn ghi 100% trong Tint
Amount: . Bng cch , bn c c ba th hin ca nhn vt Ball c mu khc nhau
(hnh 2).
Bn chn qu banh mu xanh, g on m nh sau trong bng Actions:
onClipEvent(mouseDown) {
if(_yscale == 100) {
_yscale = 200;
}
else {
_yscale = 100;
}
}
th on nhn hnh vi ca qu banh mu xanh, bn c chy chng trnh xem sao.
Bi 7 : Hm x l tnh hung T hc lp trnh Flash
Trong hm x l tnh hung bm chut onClipEvent(mouseDown) ca
qu banh mu xanh, bn vit cu lnh iu kin if(_yscale == 100).
Cu lnh nh vy t iu kin nu bin _yscale ca qu banh mu
xanh c tr bng 100. Bin _yscale xc nh t l co dn theo phng
thng ng. Bn ch , du bng y (==) khc vi du gn (=) m
bn tng dng.
Biu thc iu kin _yscale == 100 c th ng hoc sai vo lc chy. Ngi
ta cn ni kiu cch hn mt cht: biu thc _yscale == 100 c th c tr
true hoc false. Nh c hm onClipEvent(mouseDown) ca qu banh mu
xanh, mi khi bn bm chut vo lc chy, qu banh chuyn i qua li
gia hai trng thi: c ko dn theo phng thng ng hoc khng.
Qu banh mu v mu xanh th hin c tnh ca chng, ta cng nn
cho qu banh mu cam din tr g . Bn bm vo qu banh mu cam, g
phm F9 m bng Actions (hnh 1) v g on m nh sau:
?
1
2
3
4
5
6
7
8
9
10
11
onClipEvent(mouseDown) {
if(_visible) {
_visible = false;
}
else {
_visible = true;
12
13
14
15
}
}
Hm x l tnh hung bm chut onClipEvent(mouseDown) ca qu banh
mu cam ni rng: nu bin _visible ca qu banh c tr l true th gn cho
n tr false v ngc li. Khi bin _visible ca qu banh c gn tr false,
qu banh tr nn v hnh! n Ctrl+Enter chy chng trnh, bn thy hm
va vit rt hiu nghim: vi mi c bm chut, qu banh mu cam bin i
hoc hin ra.
din t iu kin nu bin _visible c tr l true, bn c th vit if(_visible
== true). Tuy nhin, cch vit nu trn gn hn v c ngha tng ng.
Bn cn c th vit gn hn na:
?
1
2
3
4
5
onClipEvent(mouseDown) {
_visible = !_visible;
}
Trong , ta dng tc t khng, biu din bng du chm than (!). Khi t
du chm than trc bin _visible, bn nhn c tr true nu bin _visible c
tr false v ngc li. Kt qu tc ng ca tc t khng c gn tr li
bin _visible. Ni khc i, cu lnh _visible = !_visible; cng c tc dng
chuyn i tr ca bin _visible gia true v false.
Bm chut nhiu ln vo lc chy chng trnh, c l bn hi hi mi tay
v cht ngh: Phi chi my qu banh ny t ng din tr m khng cn ch
bm chut. t c c m gin d , bn ch cn sa i mc
mouseDown thnh enterFrame:
?
1
2
3
4
5
onClipEvent(enterFrame) {
_visible = !_visible;
}
i vi hm x l tnh hung onClipEvent ca qu banh v qu banh xanh,
bn cng sa nh vy. Khi , hm x l tnh hung bm chut tr thnh
hm x l tnh hung chuyn khung. Bn nh, vo lc chy chng trnh,
Flash khng ngng hin th cc khung lin tip. Mi ln khung mi xut hin,
Flash gi hm onClipEvent(enterFrame) ca cc th hin (nu c). iu ny
ngha l hm onClipEvent(enterFrame) ca cc th hin c gi mt cch t
ng v lin tc.
Chy th chng trnh, bn thy khe re: c ba qu banh u hnh ng m
khng ch bn ch o, to nn hot cnh vui nhn. Nu thy hot cnh din
bin qu nhanh, bn dng chng trnh, gim tc chy khung bng cch
bm kp vo tc cnh di bng Timeline, bm kp vo Frame rate
trong hp thoi va hin ra (hnh 2), g 6 v g Enter (gim tc t 12
khung mi giy xung cn 6 khung mi giy).
Trong khi qu banh xanh v cam rt nng n, qu banh khin bn hi
phin lng v n dng li khi ng trn v ng yn lun. Chc bn s ngh:
Gi nh qu banh lin tc chy ln chy xung th vui hn. thc hin
iu ny, bn chn qu banh , sa i trong bng Actions nh sau:
?
1
2
3
4
5
6
7
onClipEvent(load) {
step = 20;
}
onClipEvent(enterFrame) {
8
9
10
11
12
13
14
15
16
17
18
19
if(_y < 0 || _y > 500) {
step = -step;
trace("Ti i chiu y.");
}
_y += step;
}
Nh bn thy, trong cu lnh thay i tung _y ca qu banh , thay v ghi
s c th x dch qu banh tng bc c nh nh trc _y += 20; gi y
ta dng mt bin, gi l step (bn ty t tn cho bin): _y += step;.
Khi qu banh ng trn hoc sn, ch cn i du cho tr ca bin step, qu
banh s i chiu chuyn ng. C th, cu lnh if(_y < 0 || _y > 500) din t
trng hp ng trn hoc sn: nu _y c tr nh hn 0 hoc _y c tr ln
hn 500 (du || ngha l hoc). Cu lnh step = -step; dng i du cho
tr s ca bin step.
Cu lnh step = 20; t bn trong hm onClipEvent(load) dng gn tr ban
u 20 cho bin step. Hm onClipEvent(load)c gi l hm x l tnh
hung khi ng v n c gi khi khi ng hot cnh. Nu khng c hm
nh vy, bin step c tr ban u mc nh l 0. Khi , c cu lnh thay i
tung _y ln cu lnh i du cho tr s ca bin step khng c tc dng g
ht.
Bi 8 : Thuc tnh ca th hin T hc lp trnh Flash
Khi chi a vi nhng qu banh (cc th hin ca nhn vt Ball), bn
bit n cc bin c sn bn trong tng qu banh, cho bit trng thi
ca qu banh: _x, _y, _xscale, _yscale, _visible. Cc bin nh vy gi l
cc thuc tnh (property) ca th hin. Khng ging nh bin do bn t
to ra (nh bin step cho qu banh mu ), khi bn thay i mt thuc
tnh ca th hin no, trng thi ca th hin t ng thay i. Chng
hn, khi gn tr false cho bin _visible ca qu banh, qu banh lp tc
bin mt.
tm hiu thm cc thuc tnh khc ca th hin, bn nn to nhn vt mi.
Ln ny ta v hnh vung thay i khng kh. Trc ht, bn bm kp
vo tn lp Layer 2 trong bng Timeline, g Balls, ri g Enter. Lm nh vy
i tn lp thnh Balls, ng rng lp ang xt l lp dnh cho cc qu
banh.
Bn hy to lp mi dnh cho cc hnh vung. Bn bm nt to lp
mi (gc di, bn tri bng Timeline), bm kp vo tn lp mi Layer 3 v
g Squares. tp trung ch vo cc hnh vung sp to ra, bn cho cc
qu banh bin mt bng cch bm vo du chm ca hng biu th lp Balls
trong bng Timeline, ct c hnh con mt . Cc qu banh ch c giu i
vng vu cho bn khi lm vic, chng vn gp mt bnh thng khi
bn chy chng trnh.
Bn v hnh vung bng cch chn cng c Rectangle hp cng c, tr vo
u trn sn khu, gi phm Shift v gi phm tri ca chut, ko chut qua
phi, xung di. Nh bn gi phm Shift, hnh khung c v ra l hnh
vung. Bn nn t mu cho hnh vung khc vi cc qu banh, mu xanh l
chng hn (hnh 1).
Bn bm vo cng c chn , bm vo hnh vung xanh l chn v g phm
F8 chuyn hnh c chn thnh nhn vt. Hp thoi Convert to Symbol
hin ra. Bn g Square t tn cho nhn vt mi (hnh 2). phn
Registration trong hp thoi, bn thy im mc nm tm nhn vt theo
mc nh. Khng cn thay i im mc, bn g Enter. Hnh vung va v to
nn nhn vt Square. Hnh vung trn sn khu tr thnh th hin ca nhn
vt Square.
Hnh vung xanh l ang tnh trng c chn. Bn g phm F9 m
bng Actions, vit hai hm x l tnh hung cho hnh vung c chn nh
sau:
?
1
2
3
4
5
6
7
8
9
10
11
onClipEvent(load) {
step = 10;
}
onClipEvent(enterFrame) {
_rotation += step;
}
Trong , hm x l tnh hung khi ng to ra bin step cha tr s 10, hm
x l tnh hung chuyn khung cng bin step vo thuc tnh _rotation ca
hnh vung. Nh vy, mi ln chuyn khung, gc quay ca hnh vung li tng
thm 10. Bn ch , bin step ta dng y khng phi l bin step c
dng cho qu banh mu . Hai bin step tuy cng tn nhng c phm vi
(scope) khc nhau, khng c dy m r m g ht.
n Ctrl+Enter chy chng trnh, bn thy hnh vung quay u do gc
quay ca n t t tng ln mi ln chuyn khung. Nu c hnh vung
quay hoi hoi, l no gc quay s tng n v cng?. Bn yn tm, thc
ra gc quay ca hnh vung ch c th nhn cc tr s t -180 n 180 (tnh
bng ). Flash t ng iu chnh tr c gn cho bin _rotation c tr
thch hp trong khong .
kim tra, bn c th ghi cu lnh theo di trace(Gc quay: + _rotation);
sau cu lnh _rotation += step; trong hm OnClipEvent(enterFrame). Bng
cch dng hm trace nh vy, khi chy chng trnh, bn s thy dng thng
bo i loi nh th ny: Gc quay: 120. l nh chui Gc quay: c
ghp vi tr s ca bin _rotation bng du cng.
Nu khng mun c qu nhiu thng bo bng Output khi chy chng
trnh, bn thm du // trc cu lnh gi hm trace:
//trace(Gc quay: + _rotation);
Flash hiu rng nhng g c ghi sau du // trn mt dng l phn ch thch,
khng cn xt n khi bin dch. Do vy, t du // trc mt cu lnh gip
bn tm thi v hiu ha cu lnh . Khi mun khi phc hiu lc ca cu
lnh, bn ch cn xa du // trc cu lnh.
Bn hy nhum mu tm cho hnh vung hin c, g phm F11 m bng
Library v ko hnh vung xanh l t th vin vo sn khu, to thm mt th
hin na ca nhn vt Square (hnh 3). Trong bng Actions, bn vit hm x
l tnh hung nh sau cho hnh vung xanh l:
?
1
2
3
4
5
6
7
8
onClipEvent(mouseMove) {
trace("_xmouse: " + _xmouse);
trace("_ymouse: " + _ymouse);
trace("_alpha: " + _alpha);
9
10
11
_alpha -= 1;
}
Bn chy chng trnh th on nhn ngha ca nhng thuc tnh m
bn cha bit. Bn s c p n vo k sau.
Bi 9 : Nhn vt phc hp T hc lp trnh Flash
Bn hy chnh sa nhn vt Square theo cch n gin: chn nhn vt
Ball trong danh sch, ko qu banh trong khung pha trn danh sch, t
ngay trn hnh vung trong khung ln gia (hnh 1). Lm nh vy,
nhn vt Square c thm mt b phn mi l nhn vt Ball. Nhn vt
Square tr thnh nhn vt phc hp, cha ng bn trong n mt nhn
vt khc.
Bm vo mc Scene 1 pha trn bng Timeline thot khi ch chnh
sa nhn vt Square, tr v vi sn khu, bn thy hai th hin ca nhn vt
Square gi y u bao gm mt hnh vung v mt hnh trn. Lc chy
chng trnh, hai th hin ca nhn vt Square vn c hnh vi nh trc, ch
khc ch c thm qu banh lin tc php phng (hnh 2). Nhn vt Ball tr
thnh mt b phn ca nhn vt Square nhng khng h qun i bn nng
ca n.
Bi 10 : Hm c sn trong Flash T hc lp trnh Flash
C l bn ang nng lng mun lp trnh tr chi g th v vi Flash.
Tuy vy, bn cn kin tr tm hiu nhng khi nim lp trnh c bn. Khi
c nn tng vng vng, bn mi c th t do sng to. Thc ra vn c
nhiu iu th v trong kin thc c bn.
Ngoi hm trace() m bn tng dng vi ln theo di din bin ca chng
trnh, cn kh nhiu hm c sn (built-in function) khc trong Flash, lm
th vic. Gi l hm c sn phn bit vi hm do bn t to ra, t t tn
(user-defined function). Bn cn bit cch dng hm c sn trc khi th to
ra hm c chc nng nh .
Bn hy khi ng Flash v chn Flash Document to tp tin mi. Bn g
phm F9 m bng Actions. Ni cho r, dng tiu ca bng l Actions
Frame, ng rng nhng cu lnh bn vit trong bng c hiu lc i vi
khung hin hnh, s c thi hnh khi Flash hin th khung vo lc chy.
Khc vi trng hp lp trnh cho nhn vt hoc th hin, y bn khng
vit hm x l tnh hung. Bn g hai cu lnh nh sau:
?
1
2
3
result = Math.pow(2, 3);
trace("2 ly tha 3: " + result);
Cu lnh th nht tnh 2 ly tha 3 v gn kt qu cho bin mang tn result
( to ra mt bin, bn thoi mi vit tn bin ty v gn tr cho n). Cu
lnh th hai trnh by tr ca bin result bng Output, gip bn bit kt qu
tnh c ng hay khng.
Lc vit cu lnh th nht, sau khi bn g Math v du chm, Flash nhanh
nhu a ra danh sch cc hm kh d (hnh 1). Bn g thm ch p, Flash
on rng l hm ly tha pow. Thay v g tip ow, bn c th g Enter
chp thun cho Flash ghi hm pow thay mnh. Tip theo, Flash nhit tnh a
ra dng hng dn nhc bn rng i mc th nht ca hm pow l c s v
i mc th hai l s m.
Vit xong hai cu lnh, bn n Ctrl+Enter chy chng trnh. Khi hin th
khung s 1 (ngoi khung s 1, bn cha c khung no khc), Flash thi hnh
hai cu lnh c ghi khung . Kt qu xut hin bng Output cho thy
Flash tnh ton nh thn: 2 ly tha 3: 8.
C l bn thy hi l: Ti sao phi vit tn hm l Math.pow, thay v ch vit
pow cho gn?. Vit Math.pow ngha l gi hm pow ca lp Math (lp ton
hc). Nhng hm c sn ca Flash c t trong nhiu lp c tn khc
nhau phn loi. Cc hm trong mt lp phc v cho mt lnh vc nht nh.
Bn cn phn bit khi nim lp (class) kh tru tng y vi lp (layer)
bng thi tuyn. Trong cng vic thc t, bn dng tng tng lp lp bng
thi tuyn l tch bit nhng hnh v v nhn vt trn sn khu cho khi
ri.
Bn c th yu cu Flash lin tip tnh ly tha vi c s l 2 v s m l 1,
2,, 9 bng cch vit li on m ActionScript cho khung 1 nh sau:
?
1
2
3
4
5
6
7
for(i = 1; i < 10; i++) {
result = Math.pow(2, i);
trace("2 ly tha " + i + ": " + result);
}
Chy chng trnh, bn thu c ngay kt qu trong bng Output (hnh 2).
Bn thy r cu lnh result = Math.pow(2, i); c thi hnh lp i lp li 9 ln.
Ngi ta gi l mt vng lp (loop). Trong ln thi hnh u tin, bin i
c gn tr 1. Mi ln lp li, tr ca bin i tng thm 1 so vi trc.
Hai cu lnh tnh ly tha v xut kt qu c thi hnh lp i lp li l nh
c ghi bn trong cp du gp { } sau dng lnh for(i = 1; i < 10; i++). Trong
cp du ngoc ( ) sau t for, ta din t vic cn lm khi bt u vng lp
(gn tr 1 cho bin i) v vic cn lm sau mi ln lp (tng tr ca i thm 1 v
xem i c cn b hn 10 hay khng). Khi vit i < 10, bn a ra iu kin
duy tr vng lp. Nu iu kin khng tha, vng lp kt thc.
Vi bin i cha tr l s nguyn, tng tr ca i thm 1, bn vit i++. Sao
khng dng mt du cng thi nh?. Vng, mt du cng th t nhin hn
nhng ngi ta phi dng tc t cng cng ++ phn bit vi tc t cng
+ thc hin php cng thng thng.
Ni cho ng, tc t cng + trong ngn ng ActionScript khng hn l php
cng thng thng. Khi vit i mc ca hm trace(), ta dng tc t
cng ghp chui vi tr nguyn. Chc bn thy rng vit nh vy cng
t nhin thi.
Bi 11 : Cc hm t to trong Flash T hc lp trnh
Flash
Sau khi dng th hm Math.pow (hm pow ca lp Math), c l bn
mun bit nhng hm c sn khc. tra cu cc hm c sn, bn tr
vo cnh tri khung son tho trong bng Actions (trong ca s Flash,
nu bng Actions cha m, bn g phm F9), sao cho con tr chut
chuyn thnh dng mi tn hai u, ri ko chut qua phi. Bn thy
l ra mt ca s b mt, cha ng cc tng th quan trng i vi
vic lp trnh Flash (hnh 1).
Th mc u tin Global Functions gip bn tm hiu nhng hm ton cc,
tc nhng hm cn dng thng xuyn, khng nm trong lp no c. Th
mc tip theo Global Properties lit k cc bin ton cc, tc nhng bin m
bn c th dng bt c lc no khi vit chng trnh. Bin ton cc c
dng chung cho mi nhn vt v th hin.
Th mc Built-in Classes gip bn tm hiu cc lp c sn. Bm vo th mc
, bn thy cc th mc con, trong th mc Core lit k cc lp ct li.
Th bm vo th mc Core, bm vo th mc Math, bm vo th mc
Methods, bn thy r cc hm thuc lp Math. Tr vo tng hm, bn thy
hin ra dng gii thch ngn gn v cng dng ca hm.
Sau ny, khi lp trnh quen tay, bn s thng xuyn m ca s tra cu
xem li cch dng cc hm c sn. Hin thi, bn ch cn bit s lc nh
vy v ch tra cu. Bn hy bm nt c du tam gic cnh phi ca s tra
cu dp n i.
Ngoi vic dng cc hm c sn, bn s phi to ra hm ph hp vi nhu cu
ca mnh. Ngi ta gi l hm t to (user-defined function) nhm phn
bit vi hm c sn.
th to ra hm, bn xa sch ni dung hin c trong bng Actions (nu
cn) v g on m nh sau:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
function init() {
num = 0;
}
function count() {
num++;
trace("S m hin nay l: " + num);
}
Vit nh vy ngha l bn nh ngha hai hm init() v count(). nh ngha hm
bt u bng t function, nhm lm cho Flash hiu rng y l hm mi y
nh!. Sau t function l tn hm do bn ty chn v cp du ngoc (). Tip
theo, phn c ghi gia cp du gp {} l thn hm (function body), din t
nhng vic m hm thc hin.
Hm init() gn cho bin num tr ban u l 0. Hm count() lm cho tr ca bin
num tng thm 1 v th hin tr ca bin num trong bng Output. Bn c th
hnh dung hm count() dng m th g . Bn gi hm count() m
ti. Khi no cn m li t u, bn gi hm init() trc, sau gi hm
count().
th dng hai hm mi toanh ca mnh, bn ghi thm nh sau bn di hai
nh ngha hm:
?
1
2
3
4
5
6
7
init();
for(i = 0; i < 5; i++) {
count();
}
Vit nh vy ngha l gi hm init(), ri gi hm count() nm ln. Thay v vit
nm ln cu lnh count(); ta dng mt vng lp for theo cch thc m bn
bit. n Ctrl+Enter chy chng trnh, bn thy dng thng bo v s m
hin ra nm ln ng nh d nh.
nh ngha hm cn c th c vit theo cch khc nh sau:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
init = function() {
num = 0;
}
count = function() {
num++;
trace("S m hin nay l: " + num);
}
Thay v vit vng lp for, bn c th dng vng
lp while:
while(num < 5) {
count();
}
Sa li chng trnh theo cch vit mi v chy th, bn thy kt qu trong
bng Output hon ton ging nh trc. Quan st cch vit vng lp while,
bn hiu ngay: vng lp ny ch c duy tr khi iu kin num < 5 c tho.
Sau khi bin num nhn tr s 5, iu kin num < 5 khng c tha na, vng
lp kt thc ngay.
Khi lp trnh, nu bn thy mnh ang vit i vit li mt nhm cu lnh no
, cn ngh ngay n vic vit mt hm cha ng nhm cu lnh
dng cho tin, khng nn chng trnh di l th vi nhiu on tng t.
Sau khi nh ngha hm, ch cn mt cu lnh gi hm , bn c th gii
quyt nhanh gn nhiu vic.
Bi 12 : Tr chi rt bt T hc lp trnh Flash
Vi nhng iu bit v Flash, bn c th bt tay vo vic thc hin
tr chi rt bt n gin: mt con vt g rt theo bn, ni cho
ng l rt theo con tr chut do bn iu khin. C th hnh dung con
tr chut ang di chuyn di nc v mt con c hung d ang
ui theo.
Trc ht, bn m ca s Flash, bt u vi tp tin mi trng trn. Bn cn
v mt hnh trn tng trng cho con c (tng tng l c nc). Khi
chng trnh chy tt, ta s v con c mt cch t m. v hnh trn, bn
bit rng cn dng cng c Oval Tool v gi phm Shift khi v trn sn
khu. Xong, bn bm vo cng c chn Selection Tool , cng khung chn bao
quanh hnh trn va v, chun b chn mu t (fill color) v mu nt (stroke
color).
hp cng c pha tri ca s Flash, bn ch phn Colors c hai mu.
Bn bm vo mu trn, chn mu nt trong bng mu va hin ra. Tng
t, bn bm vo mu di, chn mu t. Bn nn chn mu nt en v
mu t sng (mu cam chng hn) cho d thy con c ca mnh.
hnh trn tr thnh nhn vt, bn g phm F8. Khi thy hp thoi Convert
to Symbol, bn g Fish t tn cho nhn vt v g Enter. T y, hnh trn
ang hin din trn sn khu l mt th hin ca nhn vt Fish.
lp trnh cho con c, bn g phm F9 m ca s Actions Movie Clip
(hnh 1). V th hin ca nhn vt Fish ang tnh trng c chn, nhng
g bn sp ghi vo ca s Actions Movie Clip s quy nh hnh vi ca th
hin. Bn bit rng khi mun din t hnh vi ca th hin, ta phi vit cc
hm x l tnh hung. Bn vit hai hm x l tnh hung nh sau lm cho
con c bit ui theo con tr chut:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
onClipEvent(load) {
step = 5;
}
onClipEvent(enterFrame) {
if(_x + step < _root._xmouse)
_x += step;
else if(_x - step > _root._xmouse)
_x -= step;
16
17
}
Trong hm onClipEvent(load), ta to ra bin step v gn tr c th cho n. Bin
step xc nh bc dch chuyn ca c. Tr ca bin step cng ln, c dch
chuyn cng nhanh.
Hm onClipEvent(enterFrame) c gi mi khi Flash hin th mt khung.
Hin thi, bn ch c mt khung nhng v Flash hin th khung lp i lp li
vo lc chy, hm onClipEvent(enterFrame) vn s c gi lin tc.
Trong hm onClipEvent(enterFrame), bit c c nn i ti hay khng (c
nn gia tng honh _x ca c hay khng), ta ly honh _x ca c cng
vi step v so snh kt qu vi honh ca con tr chut (tc
_root._xmouse). Nu kt qu ca php cng y vn cn nh hn honh
ca con tr chut (iu kin _x + step < _root._xmouse c tha), ta cho
honh _x ca c tng thm mt bc: x += step; . Nu kt qu ln hn
honh ca con tr chut, r rng khng nn i ti v cn tip tc xt xem
c nn i lui hay khng.
bit c nn cho c i lui hay khng, ta ly honh _x tr i step v so
snh kt qu ca php tr vi honh ca con tr chut. Nu kt qu
vn cn ln hn honh ca con tr chut, nn cho c i lui bng cch gim
honh _x mt bc: x -= step;. Ngoi cc trng hp xt, honh _x
s c gi nguyn, tc l c ng yn.
C l bn hi ng ng v cch vit hm onClipEvent(enterFrame). Dng
nh phi dng cc cp du gp {} nh sau mi ng c php ca cu lnh
iu kin:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
onClipEvent(enterFrame) {
if(_x + step < _root._xmouse) {
_x += step;
}
else if(_x - step > _root._xmouse) {
_x -= step;
}
}
Thc ra, nu phn din t vic cn lm khi iu kin c tha ch c mt
cu lnh, ngn ng ActionScript cho php ta vit cu lnh y theo sau iu
kin, khng cn t trong cp du gp.
Th chy chng trnh, bn s thy khng c li bin dch. Bn a con tr
chut qua tri (hoc phi), c cng bi qua tri (hoc phi). C cha bit bi
ln, bi xung bt dnh con tr chut v ta cha hun luyn cho c lm
iu . c bit rng nn bi ln hoc xung khi no, trong hm
onClipEvent(enterFrame), bn cn xt n tung _y ca c v tung ca
con tr chut _root._ymouse theo cch thc tng t nh lm i vi
honh . Tr li vi chng trnh, bn vit thm vo hm
onClipEvent(enterFrame) nh sau:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
onClipEvent(enterFrame) {
if(_x + step < _root._xmouse)
_x += step;
else if(_x - step > _root._xmouse)
_x -= step;
if(_y + step < _root._ymouse)
_y += step;
15
16
17
18
19
else if(_y - step > _root._ymouse)
_y -= step;
}
Th chy chng trnh, bn thy r c tr nn khn lanh hn hn.
Bi 13 : Hm kim tra va chm T hc lp trnh Flash
Trong tr chi rt bt n gin thc hin, bn hun luyn con c
ca mnh cch thc rt ui mc tiu di ng l con tr chut. Vi hm
onClipEvent(enterFrame) vit, con c mi ch rt, ch cha bt.
Con c cn nhn bit thi im n chm vo c mc tiu cn la
tong ln.
Thc ra ta ch cn b sung mt cht na thi. Trng hp c bt kp con tr
chut c th xem l trng hp c ng yn, khng phi di chuyn theo
phng ngang cng nh theo phng dc.
Bn hy bm chn con c trn sn khu, m bng Actions (g phm F9) v
vit thm vo hm onClipEvent(enterFrame) c ni dung nh sau:
onClipEvent(enterFrame) {
caught = false;
if(_x + step < _root._xmouse)
_x += step;
else if(_x step > _root._xmouse)
_x -= step;
else caught = true;
if(_y + step < _root._ymouse)
_y += step;
else if(_y step > _root._ymouse)
_y -= step;
else if(caught == true)
trace(Bt c ri nh!);
}
Trong hm onClipEvent(enterFrame), trc ht ta to bin caught c tr ban
u l false. Khi bit chc c khng cn di chuyn theo phng ngang, ta gn
tr true cho bin caught lm hiu. Tip theo, nu bit chc c khng cn di
chuyn theo phng dc, ta xt xem bin caught c tr l true hay khng. Khi
, nu caught c tr l true, ngha l xy ra tnh trng c khng cn di chuyn
theo phng ngang cng nh theo phng dc, cu lnh trace(Bt c ri
nh!); thng bo h h rng con tr chut b bt.
Chy th chng trnh v gi v chm chp c bt kp con tr chut,
bn thy r nhng chi tit b sung trong hm onClipEvent(enterFrame) c
hiu lc ra sao. Nhng mt khi ngi chi phi gi v thua, cuc chi qu d,
mt ngha. Ta cn lm cho ngi chi bn rn hn, cng thng hn, bng
cch by thm lut chi nh sau: trong khi b c ui, ngi chi phi tm
mt con sao bin. Mi ln bm trng sao bin, ngi chi c thm mt
im, sao bin xut hin ngu nhin v tr khc v c di chuyn nhanh hn.
c sao bin, bn tm v hnh ngi sao n gin. Bn tr vo cng c v
hnh khung Rectangle Tool , gi phm tri ca chut cht xu, chn cng c
PolyStar Tool (cng c v a gic hoc hnh sao). n Ctrl+F3, bn thy bng
Properties m ra, trnh by nhng quy nh lin quan n hot ng ca cng
c m bn ang cm trong tay. Bn bm nt Options m hp thoi Tool
Settings (hnh 1). Trong , bn chn mc star Style v bm OK. Trong
bng Properties, bn c th chn trc mu nt v mu t cho hnh sao sp
v.
Tr vo u trn sn khu, bn gi phm tri ca chut, ko chut qua
phi, xung di, cng ra mt hnh ngi sao nm cnh.
G phm V chuyn qua cng c chn Selection Tool, ban cng khung chn
bao quanh hnh sao. Bn g phm F8 m hp thoi Convert to Symbol, g
tn Star v g Enter. Thao tc nh vy to ra nhn vt sao bin mang tn
Star. Hnh sao trn sn khu tr thnh mt th hin ca nhn vt Star.
Ta cn lp trnh sao bin nhn bit con tr chut c chm vo n hay
khng mi khi ngi chi bm chut. Mi khi b bm trng, sao bin c nhim
v cng im cho ngi chi. G phm F9 m bng Actions tng ng vi
th hin c chn (hnh 2), bn g on m nh sau:
?
1
2
3
4
5
onClipEvent(load) {
score = 0;
}
6
7
8
9
10
11
12
13
14
15
16
17
onClipEvent(mouseDown) {
if(hitTest(_root._xmouse, _root._ymouse, true))
{
score++;
trace("im: " + score);
}
}
Hm onClipEvent(load) ca sao bin to ra bin score ghi im cho ngi
chi, c tr ban u l 0. Hm onClipEvent(mouseDown), chc bn vn nh,
din t nhng vic cn lm khi ngi chi bm chut. bit v tr ca con
tr chut c nm trong hnh sao hay khng, ta dng hm hitTest() c sn trong
mi nhn vt Flash. Hm hitTest() cho kt qu l tr true hoc tr false ty theo
con tr chut c chm vo th hin ang xt hay khng.
Hai i mc u tin ca hm hitTest() l honh v tung ca con tr
chut (_root._xmouse v _root._ymouse). Nu i mc th ba l false, hm
hitTest() s kim tra xem con tr chut c nm trong khung bao ch nht
(bounding box) ca th hin hay khng. V ta ghi i mc th ba ca hm
hitTest() l true, hm hitTest() kim tra k cng hn, ch tr v cho ta tr true
nu con tr chut thc s chm vo hnh sao.
Quan st cu lnh iu kin trong hm onClipEvent(mouseDown), bn hiu
ngay: nu con tr chut chm vo sao bin, tr ca bin score c tng thm
mt v thng bo xut hin bng Output cho ngi chi bit h t c
bao nhiu im.
Th chy chng trnh, bn thy tuy sao bin cha di chuyn c nh d
nh nhng tr chi tr nn th v hn.
Bi 14 : Hm tnh tr ngu nhin T hc lp trnh Flash
Trong tr chi ang thc hin, ta d nh cho sao bin di chuyn ngu
nhin mi khi c bm trng (xem nh ngi chi nht c sao bin
v mt sao bin khc xut hin ti v tr bt k). Mun vy, trong hm
onClipEvent(mouseDown) ca sao bin, bn gn tr ngu nhin cho
honh _x v tung _y ca sao bin. Nhng trc tin bn cn lm
quen vi hm tnh tr ngu nhin random() trong lp Math.
Bn bm chn sao bin, m bng Actions MovieClip xem li chng
trnh ca sao bin v ghi thm cu lnh hin th tr ngu nhin do hm
Math.random() cung cp:
?
1
2
3
4
5
6
onClipEvent(mouseDown) {
if(hitTest(_root._xmouse, _root._ymouse, true))
{
trace("Tr ngu nhin: " + Math.random());
7
8
9
10
11
12
13
score++;
trace("im: " + score);
}
}
Th chy chng trnh, bn thy mi khi bm trng sao bin, sao bin thng
bo mt tr ngu nhin bng Output. Bm sao bin nhiu ln, bn s nhn
ra tr ngu nhin tr v bi hm Math.random() lun nh hn 1. Ni chnh xc,
hm Math.random() cho ta tr ngu nhin ln hn hoc bng 0 v nh hn 1.
Mun thu c tr ngu nhin trong khong ty , ta phi phng ln tr tr v
ca hm Math.random().
cho r rng, ta vit mt hm mi tnh tr ngu nhin trong khong ty
v dng hm trong hm onClipEvent(mouseDown) ca sao bin. Chng
trnh ca sao bin ch chp nhn cc hm x l tnh hung nn bn phi vit
hm cn thit ch khc.
Bm vo ch trng trn sn khu, bn thy chng trnh ca sao bin bin
mt. Bng Actions Frame trc mt bn dng lp trnh cho khung u
tin (hnh 1). Bn vit hm tnh tr ngu nhin ngon lnh hn, gi l
getRandom(min, max), nh sau:
?
1
2
3
4
function getRandom(min, max) {
var num = Math.random();
5
6
7
8
9
10
11
num = num * (max - min);
num = num + min;
return num;
}
Hm getRandom(min, max) cho tr ngu nhin trong khong t min n max
bng cch nhn tr tr v ca hm Math.random() vi khong cch gia max
v min, tc max min, ri cng kt qu vi min. Cu lnh return num; lm
cho hm getRandom(min, max) tr v kt qu tnh ton khi c gi. y l
ln u tin bn vit mt hm c tr v mt tr s.
Ngoi ra, chc bn ch n t var trong cu lnh var num = Math.random();.
Cu lnh ny to ra bin (variable) mang tn num cha tr tr v bi hm
Math.random(). Vit t var khi to ra bin num, ta ng rng bin num l bin
c to ra tm thi trong hm getRandom(). Bin nh vy gi l bin cc b,
c xa khi b nh my khi hm getRandom() kt thc cng vic.
Bn bm vo sao bin tr v vi chng trnh ca sao bin trong bng
Actions -Movie Clip . Trong hm onClipEvent(mouseDown), bn gi hm
getRandom() va vit th tnh tr ngu nhin t 0 n 400:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
onClipEvent(mouseDown) {
if(hitTest(_root._xmouse, _root._ymouse, true))
{
trace("Tr ngu nhin: " + _root.getRandom(0,
400));
score++;
trace("im: " + score);
}
}
C l bn thc mc: V sao phi vit _root.getRandom(0, 400), thay v vit
n gin getRandom(0, 400)?. Nu bn khng dng tham chiu _root, khi
xem xt chng trnh ca sao bin, Flash khng bit rng phi c hm
getRandom() khung 1 ca thi tuyn chnh, khc vi thi tuyn c dng
bn trong th hin ca nhn vt sao bin.
Th chy chng trnh v bm nhiu ln vo sao bin, bn thy r hm
getRandom() ca ta cho tr ngu nhin nh hn 400.
sao bin di chuyn khp sn khu, honh _x ca sao bin phi c tr
bt k nh hn chiu rng sn khu v tung _y phi c tr bt k nh hn
chiu cao sn khu. Bm vo ch trng trn sn khu thi chn sao bin,
bn thy li chng trnh thi tuyn chnh. Bn chnh sa v b sung c
ni dung nh sau:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function getRandomX() {
return getRandom(0, 550);
}
function getRandomY() {
return getRandom(0, 400);
}
function getRandom(min, max) {
return Math.random()*(max - min) + min;
16
17
}
Nh bn thy, ta nh ngha thm hai hm mi: getRandomX() v
getRandomY().
Hm getRandomX() dng to ra tr ngu nhin ln hn hoc bng 0 v nh
hn 550. Trong , 550 l chiu rng mc nh ca sn khu. Hm
getRandomX() thch hp cho vic to ra honh ngu nhin bao qut chiu
rng sn khu. Hm getRandomX() khng lm g nhiu, ch da hon ton
vo tnh ton ca hm getRandom(min, max). Chiu cao mc nh ca sn
khu l 400, do vy bn hiu ngay hm getRandomY() c vit ra dng
vo vic g.
Ngoi ra, v bn hiu cch tnh ton ca hm getRandom(min, max), ta vit
li ni dung ca hm dng gn hn, c ngha tng ng.
Chuyn qua chng trnh ca sao bin (bm vo sao bin), bn chnh sa
nh sau:
?
1
2
3
4
5
6
7
8
9
10
onClipEvent(mouseDown) {
if(hitTest(_root._xmouse, _root._ymouse, true))
{
_x = _root.getRandomX();
_y = _root.getRandomY();
score++;
11
12
13
14
15
trace("im: " + score);
}
}
Th chy chng trnh, bn thy ln ny sao bin thc s di chuyn ngu
nhin mi khi c bm trng.
Bi 15 :Lin lc gia cc th hin T hc lp trnh
Flash
Bn lm cho sao bin x dch ngu nhin v tng thm 1 im cho
ngi chi mi khi sao bin c bm trng. Khi , theo d nh, ta
cn phi lm cho c chuyn ng nhanh hn. im ca ngi chi cng
cao, c bi cng nhanh. C nh vy, tr chi mi ho hng! Chc chn
c s bt c con tr chut vo lc no . Khi c bt c con tr
chut, tr chi cn tr li t u: im ca ngi chi c gn li tr
s 0. im cao nht t c s th hin ng cp ca mi ngi
chi.
Vi mc tiu nh vy, sao bin cn lin lc vi c yu cu tng tc. Ngc
li, c phi yu cu sao bin cho ngi chi im 0 khi c bt c con tr
chut. c v sao bin c th ni chuyn vi nhau, trc ht bn phi t
tn cho chng. C l th hin ca nhn vt Fish, cn sao bin l th hin ca
nhn vt Star, c hai th hin ny u cha c tn ring.
Bn hy bm vo c v n Ctrl+F3 m bng Properties. Bn bm vo c
dng ch , g fish v g Enter (t tn cho c l fish).
Bn bm chn sao bin. Bng Properties thay i, tng ng vi sao bin.
Bn bm vo c dng ch , g star v g Enter (t tn
ngn gn cho sao bin l star). Xong, bn bm vo thanh tiu ca bng
Properties tm dp n i.
Bn m bng Actions (trnh by chng trnh ca sao bin), vit thm mt
cu lnh trong hm onClipEvent(mouseDown) nh sau:
?
1
2
3
4
5
6
7
8
9
10
11
onClipEvent(mouseDown) {
if(hitTest(_root._xmouse, _root._ymouse, true))
{
_x = _root.getRandomX();
_y = _root.getRandomY();
score++;
12
13
14
15
16
17
trace("im: " + score);
_root.fish.step++;
}
}
Cu lnh m bn va vit tng thm 1 cho tr s ca bin step bn trong c.
din t bin step ca c trong chng trnh ca sao bin, bn phi ghi
_root.fish.step, ch khng th ghi n gin fish.step. Tham chiu _root tr n
sn khu, ni lu gi tn tui ca cc din vin.
Bn cn iu chnh thm cht xu trc khi chy th chng trnh: bm-phi
vo c, tr vo mc Arrange trn trnh n va hin ra, chn mc Bring to
Front. Nh vy, c c t pha trc sao bin, gy kh d cho bn nhiu
hn.
Th chy chng trnh, bn thy cu lnh mi c hiu lc r rng: khi im
ca bn cng tng (bt c cng nhiu sao bin), c cng hong ht, ra sc
bo v sao bin. Khi c bt c con tr chut, ngi chi khng h hn g.
iu ny khng cng bng.
Bn hy ng ca s chng trnh v nhn vo bng Actions (lc ny ang
trnh by chng trnh ca c). Bn ch trng hp bt c con tr
chut din t phn cui ca hm onClipEvent(enterFrame). Bn chnh sa
nh sau:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
onClipEvent(enterFrame) {
...
else if(caught == true) {
trace("Bt c ri nh!");
_root.star.score = 0;
step = 5;
}
}
Cu lnh _root.star.score = 0; gn tr s 0 cho bin score bn trong sao bin,
buc ngi chi tr li mc xut pht. din t bin score ca sao bin
trong chng trnh ca c, bn phi vit _root.star.score, ch khng th vit
n gin star.score.
Cu lnh step = 5; lm cho c bnh tnh tr li, bi chm nh lc u sau khi
bt c con tr chut.
Chy li chng trnh, va chi va lic nhn bng Output, bn s thy s
cng bng ca tr chi c thit lp: khi c bt kp con tr chut, im tch
ly ca bn mt sch!
Khi tr chi ca bn chy trong trang web, ngi chi khng thy bng
Output. Do vy, bn cn hin th im ngay trn sn khu.
Bn bm vo cng c Text Tool (hoc g phm T), cng mt khung nh gc
di, bn tri sn khu v g SCORE:. Bn m li bng Properties bng cch
bm vo thanh tiu ca bng . Bm vo Text Type trong bng
Properties, bn chn Static Text (thay cho Dynamic Text), quy nh rng
khung ch ca bn c ni dung c nh, khng thay i. Ngi ta gi l
khung ch tnh.
Nu cn thay i phng ch v c ch, bn chn dng ch SCORE: (ko
chut ngang qua dng ch), chn phng ch trong Font, bm kp vo
Font Size v g tr s ty (20 chng hn).
Bn cng mt khung khc bn phi dng ch SCORE: to khung ch mi
(hnh 1). Trong bng Properties (lc ny tng ng vi khung ch mi), bn
chn phng ch v c ch ging nh dng ch SCORE. Bm vo Var, bn
g _root.star.score v g Enter. Thao tc nh vy to ra khung ch ng trnh
by tr s ca bin _root.star.score (ni dung ca khung ch thay i theo tr
s ca bin _root.star.score).
Chy th chng trnh, bn thy khung ch ng th hin ng im s ca
mnh (so vi thng bo bng Output).
Theo echip.com
Bi 16 : V sao bin T hc lp trnh Flash
Trong tr chi bt sao bin ang thc hin, mi khi c bt kp con tr
chut, c yu cu sao bin cho im ca ngi chi tr v tr s 0. Tuy
nhin, vo lc y ngi chi khng kp ch rng mnh t c bao
nhiu im. i vi ngi chi, iu quan trng l ghi nh im cao
nht m h t c sau nhiu ln chi. Do vy, bn trong sao bin, ta
nn to thm mt bin ghi nh im cao nht t c.
C th, bn bm vo sao bin trn sn khu, m bng Actions v vit thm
vo chng trnh ca sao bin nh sau:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
onClipEvent(load) {
score = 0;
highscore = 0;
}
onClipEvent(mouseDown) {
if(hitTest(_root._xmouse, _root._ymouse, true))
{
_x = _root.getRandomX();
_y = _root.getRandomY();
score++;
19
20
21
22
23
24
25
26
27
28
29
if(score > highscore)
highscore = score;
trace("im: " + score);
_root.fish.step++;
}
}
Trong hm onClipEvent(load), ta to ra bin mi highscore vi tr ban u l
0. Sau mi ln tng im cho ngi chi, ta u xt xem im mi c cao
hn tr s ca bin highscore hay khng. Nu cao hn, ta gn im mi cho
bin highscore. Khi bin score tr v tr s 0, bin highscore vn lu gi im
cao nht ca ngi chi.
Bn hy ng bng Actions. Vic cn lm tip theo l hin th im cao nht
ca ngi chi. Vi cng c chn trong tay, bn cng khung chn bao quanh
hai khung ch hin c (mt khung ch tnh c dng ch SCORE v mt
khung ch ng hin th tr s ca bin score) v n Ctrl+C sao chp. Bn
n Ctrl+V dn bn sao vo sn khu, bm kp vo khung ch SCORE,
sa ni dung thnh HIGHSCORE. Bm vo khung ch ng k bn, m bng
Properties, bn sa ni dung trong Var thnh _root.star.highscore v g
Enter (hnh 1). Nh vy, khung ch ng mi s hin th tr s ca bin
highscore.
Bn nn chy chng trnh ngay bit chc khung ch ng mi hot ng
tt nh mong mun. Bn c th r r ngi khc tranh ti cng bn, xem ai
t im highscore cao hn trong nm pht chng hn.
Khi tr chi chy tt, bn c th bc qua giai on chm cht ngoi
hnh. Ta bt u vi vic tt li v p giai ca sao bin. Bn bm kp vo
sao bin chuyn qua ch chnh sa nhn vt sao bin. Mun ly tm
nhn gn cho tin vic tn trang, bn chn cng c Zoom Tool (hoc g
phm Z) v bm vo sao bin vi ln. Nu l nhn qu gn, bn chn
Reduce hp cng c v bm vo sao bin lui ra xa.
Bn cm ly cng c chn , bm vo u bn ngoi sao bin thi
chn sao bin. a con tr chut vo mt cnh ca sao bin, bn thy con
tr chut i dng , t sn sng gip bn chnh sa ng nt ca sao bin.
Bn nm ko cnh sao bin un cong ty (hnh 2). Tht tuyt! C th,
bn un cong mi cnh ca hnh sao kh cng ban u c c ng
nt mm mi.
Khi hi lng v hnh dng sao bin, bn bm kp vo dng ch Layer 1
bng Timeline , g tn Thn . Thao tc i tn lp nh vy gip bn nh rng
lp ang xt cha thn ca sao bin. Bn bm vo du chm bn di hnh
kha lp Thn c kha cng, khng th chnh sa.
Bn to lp mi Layer 2 bng cch bm vo biu tng Insert Layer , ri i
tn Layer 2 thnh Mt, ng rng lp mi s c dng cha mt ca
sao bin.
V mt rt d, bn chn cng c Oval Tool , bm vo Fill Color , chn mu
t l mu en v v ra mt hnh trn nh. Bn bm vo cng c chn , cng
khung chn bao quanh hnh trn en va v, n Ctrl+C sao chp, ri n
Ctrl+V dn bn sao vo lp Mt. Bn ln lt ko hai hnh trn en vo
gia sao bin, to nn cp mt.
Bn kha lp Mt, to lp mi mang tn Ming. Bn v mt hnh -van dt
bn di cp mt ca sao bin, dng cng c chn chnh dng -van, to
nn ming ci xinh (hnh 2).
Xong xui, bn bm vo mc Scene 1 thot khi ch chnh sa nhn
vt sao bin, tr v vi sn khu. Bn ng qun n Ctrl+S lu li thnh
qu ca mnh
Bi 17 : V c nc T hc lp trnh Flash
M li tr chi bt sao bin trong Flash, bn bm kp vo hnh trn m
ta gi l c nc chuyn qua ch chnh sa nhn vt Fish. Bn
g phm Z ly cng c Zoom Tool , cng khung chn bao quanh hnh
trn c c tm nhn gn, tp trung vo hnh trn.
Bn i tn lp Layer 1 thnh Thn: bm kp vo Layer 1 bng thi tuyn,
g Thn . Tn lp nh vy ng rng lp ang xt ch dng cha phn
thn c. Nh t mi b phn ca hnh v vo lp ring, bn d dng chnh
sa hnh v sau ny.
Bn to lp mi Layer 2 bng cch bm vo biu tng Insert Layer , i tn
Layer 2 thnh Mt. v mt, bn chn cng c Oval Tool . Trc khi v,
bn nh chn mu t thch hp Fill Color .
bn ngoi thn c, bn ln lt v ba hnh -van chng nhau to nn
mt con mt . D tr sau ny s lm cho con mt nhc nhch, ta chuyn con
mt va v thnh nhn vt hn hi. C th, bn ly cng c chn , cng
khung chn bao quanh con mt, g phm F8 m hp thoi Convert to
Symbol, g tn Eye v g Enter. Khi t tn cho nhn vt trong Flash, bn nn
dng ting Vit khng du hoc ting Anh cho tin vic lp trnh.
Nu cn co dn con mt c kch c nh , bn bm vo cng c Free
Transform Tool v bm vo con mt. Bn ko mt trong cc du vung mu
en va xut hin quanh con mt cho n khi t c kt qu mong mun.
Tr vo con mt sao cho con tr chut i dng thnh mi tn bn u , bn
ko hnh vo phn trn thn c (hnh 1), n gn nh hnh trn. Bn n
Ctrl+C sao chp con mt, n Ctrl+V dn con mt th hai vo lp Mt v
ko con mt th hai n v tr thch hp, ngang vi con mt th nht.
Bn to lp mi, t tn l Ming v v hai hnh -van dt chng nhau lm
ming c. Bn nn v bn ngoi thn c cho d chnh sa. hai hnh -van
va v dnh lin nhau thnh mt nhm (group), thun tin cho vic di chuyn,
bn ly cng c chn , cng khung chn bao quanh hai hnh -van v n
Ctrl+G. Xong, bn ko hai hnh -van vo thn c, t ngay di cp mt,
to thnh ming c.
Bn to lp mi, t tn l Vy, v hnh -van v dng cng c chn lm
mo hnh -van pha tri, to thnh vy c . Ta cng d tr lm cho vy
c ve vy nn cn chuyn vy c thnh nhn vt. Bn cng khung chn bao
quanh vy c va v, g phm F8, g tn Fin v g Enter. Vy c tr thnh
nhn vt mang tn Fin.
Bn bm kp vo vy c chuyn qua ch chnh sa nhn vt Fin. Trong
bng thi tuyn ca vy c, bn bm vo khung 10, g phm F6. Thao tc nh
vy lm cho thi tuyn ca vy c gm 10 khung (thay v ch c mt khung
nh trc). Khung 10 tr thnh khung cht v c ni dung ging ht khung 1
(hnh 2).
Bn bm vo khung 1, n Ctrl+F3 m bng Properties. Trong Tween,
bn chn mc Shape. Thao tc ny ni vi Flash rng bn mun to ra nhng
hnh trung gian cho s bin i hnh dng gia hai khung cht. Du mi tn
chy t khung 1 n khung 10 xut hin, chng t Flash hiu bn.
V vy c khung 1 v khung 10 ging ht nhau nn vic to ra cc hnh
trung gian cha thc s c ngha. Bn bm vo khung 5, g phm F6.
Khung 5 cng tr thnh khung cht. Bn chn cng c co dn , ko du
vung gia cnh tri vy c qua phi co hp vy c . Vy c khung 5
c dng khc vi vy c khung 1 v khung 10. Php bin hnh ca Flash tr
nn c ngha: vy c s co hp dn t khung 1 n khung 5 v n rng dn
t khung 6 n khung 10 (tr li hnh dng c).
Bn bm vo mc Fish pha trn bng thi tuyn tr v vi nhn vt Fish,
sao chp vy c hin c c vy th hai. Bn chn Modify > Transform >
Flip Horizontal lt ngang vy th hai. Bn t hai vy hai bn thn c,
ko lp Vy xung di lp Thn vy nm sau thn (hnh 1).
Bn n Ctrl+Enter, xem th c hot ng ra sao nha.
Theo echip.com
Bi 18 : Din hot b phn T hc lp trnh Flash
Khi v c nc, bn din hot (animate) cho vy ca n, khin vy c
ve vy tht sinh ng. Ta hy thc hin mt vic kh hn: din hot mt
c.
Ni c th, bn s lm cho c bit lic ngang lic dc: trng en ca mt
lun dch chuyn bn trong trng trng, hng v pha con tr chut. Nh
vy, ngi chi c cm gic c nc ca ta thc s khn lanh. Din hot cho
mt b phn ca hnh v, lm cho n ht cng l vic rt thng xuyn
trong cng on tinh chnh tr chi.
Sau khi m li tr chi bt sao bin trong ca s Flash, bn g phm F11
(hoc n Ctrl+L) m bng Library. Trong danh sch nhn vt, bn chn
nhn vt Eye. Khung hnh pha trn danh sch lp tc hin th mt c. Bm
kp vo hnh mt c trong bng Library, bn chuyn qua ch chnh sa
nhn vt Eye. Sn khu bin mt, ch cn hnh mt c trn nn trng trng
tri.
Hin thi, hai mt ca c l hai th hin ca nhn vt Eye. Do vy, khi bn
chnh sa nhn vt Eye, c hai mt c u thay i ging nhau.
Trc khi chnh sa mt c, bn nn ly tm nhn gn thch hp. Cch chnh
sa d dng nht l xa hnh v tm hin c (n Ctrl+A chn tt c v g
phm Delete), ri v li mt cch cn trng. Mi phn ca hnh cn c t
trong mt lp ring.
Bn v mt hnh trn mu cam, di chuyn hnh trn sao cho im mc ca
nhn vt Eye nm hi thp so vi tm hnh trn (hnh 1). Khi chn hnh trn
di chuyn, bn nh chn c ng bin hnh trn (bm vo hnh trn, gi
phm Shift v bm vo bin hnh trn). Nu c g cha ng , bn ch cn n
ngay Ctrl+Z hy b thao tc va thc hin.
Bn to lp mi Layer 2 v v mt hnh -van mu trng. Bn ch di chuyn
hnh -van sao cho tm ca n trng vi im mc ca nhn vt Eye (hnh 1).
Bn to lp mi Layer 3, v mt hnh trn mu en v cng di chuyn hnh
trn sao cho tm ca n trng vi im mc (hnh 1). l trng en ca mt
c.
c th lp trnh cho trng en, ta cn chuyn trng en thnh nhn vt
ring bit. Mun vy, trc ht bn chn trng en v ng bin ca n (
khi vng vu ng bin ca trng en, bn c th chn ng bin ,
g phm Delete xa, ri dng cng c co dn iu chnh kch c trng
en sao cho ph hp). Bn g phm F8 m hp thoi Convert to Symbol,
g tn Pupil (trng en) v g Enter. Trng en tr thnh mt th hin ca
nhn vt Pupil.
Vi trng en ang trong tnh trng c chn, bn g phm F9 m
bng Actions Movie Clip (hnh 2), vit hm x l tnh hung di chuyn
chut nh sau:
?
1
2
3
4
5
onClipEvent(mouseMove) {
a = Math.atan2(_ymouse, _xmouse);
_x = 3*Math.cos(a);
6
7
8
9
_y = 3*Math.sin(a);
}
;
Hm onClipEvent(mouseMove) c gi mi khi ngi chi x dch con
chut. Bn trong hm, ta tnh gc nghing ca tia ni im mc vi con tr
chut (gc gia tia v phng ngang) bng cch dng hm atan2() ca
lp Math. Bn ch , ta ang bn trong nhn vt Eye, do _xmouse v
_ymouse l honh v tung ca con tr chut so vi im mc ca nhn
vt Eye.
Khi c gc nghing cn thit, ta tnh c ta ca trng en ph hp vi
gc nghing . Ly dch chuyn ca trng en so vi im mc l 3 pi-
xn, bn nhn dch chuyn vi cosin/sin ca gc nghing c honh
/tung ca trng en.
n Ctrl+Enter chy th tr chi, khi vn vn con tr chut quanh c nc,
bn thy c lun o mt di theo con tr chut (hnh 3).
Bn c th chnh sa dch chuyn ca trng en cho ph hp vi kch c
c th ca mt c do bn v, nhng ng trng en vt ra ngoi trng
trng!
Theo echip.com
Bi 19: Hnh nn v nhc nn T hc lp trnh Flash
Tr chi Flash u tin ca bn gn hon chnh, bn c th thm vo
hnh nn v nhc nn cho sng mt tai. Do bn cha tht quen
vi cc cng c v ca Flash c th t v hnh nn, bn nn tm hnh
nh trn mng. Chng hn, nu g cc t cht underwater images trong
tm kim Google, bn s tm c nhiu hnh chp di nc.
Gi s bn tm thy mt hnh no coi c. Sau khi m tr chi bt sao
bin trong ca s Flash, bn cn to mt lp mi cha hnh nn. C th,
trong bng Timeline, bn bm Insert Layer to nn lp mi Layer 2, tr vo
Layer 2, ko n xung di Layer 1. Bn c th i tn Layer 2 thnh
Background hoc Nn nu r ngha ca lp mi.
Bn n Ctrl+R (hoc chn File > Import > Import to Stage). Trong hp thoi
Import va hin ra, bn tm n th mc cha hnh cn thit v bm kp vo
hnh . Hnh c chn lp tc c a vo th vin v th hin trn sn
khu lp nn.
Bn bm vo hnh nn v n Ctrl+F3 m bng Properties, quan st cc
thuc tnh ca hnh nn. V sn khu ca ta c kch thc mc nh 550 x 400
(rng 500 im nh, cao 400 im nh), bn cn iu chnh hnh nn c
kch thc ging nh vy: sa tr s trong W thnh 550 v sa tr s trong
H thnh 400 (hnh 1). Hai X v Y u c tr s mc nh l 0, ngha l gc
trn, bn tri ca hnh nn trng vi gc trn, bn tri ca sn khu. Trong
phn ln trng hp, chnh l iu ta mong mun, bn khng cn sa
thm g na
c nhc nn, bn cng c th tm trn mng vi cc t cht background
music mp3. Bn nn chn on nhc ngn, vui v, c th nghe li nhiu ln
m khng chn. on nhc di khng thch hp vi tr chi Flash v s lm
cho tp tin SWF cui cng m bn thu c phnh ln. Mi th a ln
mng cng nh gn cng tt.
Sau khi c c tp tin MP3 cha nhc nn t trong th mc no , bn
tr li ca s Flash, n Ctrl+R m hp thoi Import, tm chn tp tin MP3
cn thit. on nhc MP3 cng c a vo th vin.
thy c cc th ang c trong th vin, bn m bng Library bng cch
n Ctrl+L hoc g phm F11. Trong danh sch ca bng Library, khi bn chn
on nhc MP3, tn hiu m thanh c th hin trong khung pha trn (hnh
2). Bn s thy hai dng m thanh trong khung nu on nhc ang xt
thuc loi stereo. Nu cn nghe li on nhc kim tra cht lng, bn
bm nt Play . Mun thi nghe, bn bm nt Stop .
Khc vi trng hp hnh nn xt, on nhc ca bn khng c a
vo sn khu mt cch t ng. Bn phi ch ng quy nh nhc nn bng
cch bm vo khung 1 (cng l khung duy nht) ca lp nn, bm vo
Sound trong bng Properties, chn on nhc cn thit (hnh 3). Theo mc
nh, on nhc c chn nh vy ch pht ra mt ln. on nhc c
lp li hoi hoi sut tr chi, bn bm vo Sound Loop, chn Loop thay
cho Repeat. Vy l , bn hy n Ctrl+Enter chy tr chi, nghe th nhc
nn.
Nu quan st th mc cha tp tin FLA v SWF ca tr chi, bn s ngc
nhin v tp tin SWF (c bin dch t tp tin FLA) rt b so vi tp tin FLA.
Tp tin SWF tuy cha mi th cn thit ca tr chi (chng trnh, hnh v,
hnh nn, m thanh) nhng thng nh hn nhiu so vi tp tin MP3 dng
nh Flash nn m thanh rt tt. Bn c th a nhiu on nhc vo th vin
d la chn nhng ch on nhc m bn thc s dng trong tr chi mi
c lu tr trong tp tin SWF.
Bi 20: Cu lnh to th hin T hc lp trnh Flash
Bn bit cch to ra th hin ca nhn vt: tr vo tn nhn vt trong
th vin, ko vo sn khu.
Ngoi cch thc th cng nh vy, ta cn c th to ra th hin ca nhn vt
bng cu lnh ActionScript, ngha l to ra th hin vo lc chy chng trnh.
l vic thng lm khi lp trnh Flash v ta khng lun lun bit trc cn
c bao nhiu th hin trn sn khu. S lng th hin trn sn khu c th
thay i. Mi th hin c th xut hin v bin mt ty lc. Th hnh dung din
bin ca tr chi Space Invaders quen thuc, bn thy ngay: vic to th hin
mt cch linh hot vo lc chy l nhu cu bc thit.
th to th hin bng cu lnh, bn hy m tp tin Flash mi, v mt hnh
-van (c mu t ty nhng ng qu m), cng khung chn bao quanh
hnh va v, g phm F8, g tn Oval v g Enter. Bn bit qu r: thao tc
va thc hin to ra mt nhn vt mang tn Oval. Hnh -van trn sn khu
tr thnh mt th hin ca nhn vt Oval. G phm F11 m bng Library,
bn thy r nhn vt Oval c lu tr .
Bn xa th hin ca nhn vt Oval trn sn khu (bm vo hnh -van, g
phm Delete). Ta s to ra th hin ca nhn vt Oval trn sn khu trng trn
bng cu lnh thch hp.
Trc khi lm iu , bn bm-phi vo tn Oval trong th vin, chn
Linkage trong trnh n va hin ra. Trong hp thoi Linkage Properties, bn
chn mc Export for ActionScript (hnh 1) v bm OK. Thao tc nh vy nhm
khai bo vi Flash rng: Khi to ra tp tin SWF, nh ghi vo nhn vt
mang tn Oval. Nu bn khng khai bo nh vy, Flash s khng ghi nhn
vt Oval vo tp tin SWF vi l do n gin: nhn vt Oval khng hin din
trn sn khu. Mt khi trong tp tin SWF khng c nhn vt Oval, chng
trnh c ghi trong SWF khng th to ra th hin ca nhn vt Oval vo lc
chy.
C l bn hi ngc nhin v chuyn khai bo nu trn: Ti sao Flash khng t
ng ghi mi nhn vt trong th vin vo tp tin SWF, d c hin din trn
sn khu hoc khng?. Ngh k mt cht, bn thy ngay s kh chu ca
Flash mang n li ch cho bn. Bn c th lu tr rt nhiu th trong th
vin nhng tp tin sn phm SWF lun nh gn, ch cha ng nhng th
thc s c dng. Trong trng hp ang xt, tuy nhn vt Oval khng c
trong sn khu nhng ta cn n vo lc chy, do vy phi ni trc Flash
hiu r nh ca ta.
Bn g phm F9 m bng Actions Frame, ni dng vit chng trnh
cho khung u tin ca thi tuyn chnh. Ta dng thut ng thi tuyn chnh
(main timeline) phn bit vi thi tuyn bn trong mi th hin. Bn g
on m nh sau trong bng Actions Frame:
?
1
2
3
4
5
attachMovie("Oval", "oval1", 1);
attachMovie("Oval", "oval2", 2);
attachMovie("Oval", "oval3", 3);
;
Ta dng ba cu lnh nh trn to ra ba th hin ca nhn vt Oval c tn
l oval1, oval2 v oval3. i mc u tin ca hm attachMovie() l tn nhn
vt. i mc th hai l tn ca th hin. i mc th ba cho bit th hin nm
su no trn sn khu. Vi cch vit nh trn, th hin oval1 nm su
nht trn sn khu. Th hin oval2 nm trn oval1 v th hin oval3 nm trn
oval2.
n Ctrl+Enter chy chng trnh, bn thy trn sn khu ch c mt hnh -
van. chnh l th hin oval3 nm trn cng, chng kht ln hai th hin
oval2 v oval1. Theo mc nh, hm attachMovie() to ra th hin ti im gc
(0, 0) trn sn khu. Mun thy r c ba th hin, bn cn x dch chng i
cht. Tr li vi chng trnh ang vit, bn g thm on m nh sau:
?
1 oval1._x += 100; oval1._y += 100;
2
3
4
5
oval2._x += 160; oval2._y += 100;
oval3._x += 220; oval3._y += 100;
;
on m va thm quy nh v tr cho cc th hin bng cch thay i tr ca
bin _x v _y bn trong tng th hin. Cu lnh oval1._x += 100; lm cho
honh _x ca th hin oval1 tng thm 100 (x dch qua phi 100 im
nh). Cu lnh oval1._y += 100; lm cho tung _y ca th hin oval1 tng
thm 100 (x dch xung di 100 im nh). Cc cu lnh tip theo lm cho
honh _x ca th hin oval2 v oval3 tng nhiu hn oval1. Th chy
chng trnh, bn c kt qu nh hnh 2.
Vi cc th hin c to ra vo lc chy, bn c th thay i cc thuc tnh
ca chng mt cch bnh thng. Chng hn, bn c th thay i bin _alpha
trong tng th hin:
?
1 oval1._alpha = 50;
2
3
4
5
oval2._alpha = 50;
oval3._alpha = 50;
;
on m vit thm nh trn lm cho cc th hin tr nn na trong sut (hnh
3).
Bi 21 : Sao chp th hin T hc lp trnh Flash
Bn th nghim cc cu lnh to th hin. T sn khu trng trn,
cc th hin c to ra vo lc chy chng trnh.
Trong chng trnh, bn c th thay i cc thuc tnh ca th hin nh vy
mt cch bnh thng. Bn hy m li tp tin FLA cha cc cu lnh th
nghim. Ta s tip tc tm hiu vic xa b th hin v sao chp th hin vo
lc chy.
Trong bng Actions Frame cha chng trnh ng vi khung 1, bn g
thm mt cu lnh sau on m c:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
attachMovie("Oval", "oval1", 1);
attachMovie("Oval", "oval2", 2);
attachMovie("Oval", "oval3", 3);
...
oval1._alpha = 50;
oval2._alpha = 50;
oval3._alpha = 50;
oval3.removeMovieClip();
;
Cu lnh va thm dng xa b th hin mang tn oval3. Ni ng hn, ta
gi hm removeMovieClip() ca oval3 yu cu n t hy. n Ctrl+Enter
th chy chng trnh, bn thy qu thc th hin oval3 mt i, ch cn hai
th hin oval1 v oval2.
Vo lc chy chng trnh, ta cn c th to ra bn sao ca th hin no .
Bn th vit thm cu lnh nh sau:
?
1 oval1.duplicateMovieClip("oval3", 3);
;
Cu lnh va vit yu cu oval1 to ra bn sao ca chnh n. Bn sao c
t tn l oval3 v c su l 3 (nm trn oval1 v oval2). Th chy chng
trnh, bn kh nhn ra s hin din ca bn sao v bn sao oval3 chng kht
ln oval1. thy r bn sao oval3, bn vit thm cu lnh nh sau dch
chuyn n xung di:
?
1 oval3._y += 100;
;
Bn thu c kt qu nh hnh 1 (tn ca cc th hin c ghi vo hnh
bn d phn bit). Bn sao oval3 hon ton ging oval1, cng na trong sut.
C th bn ang ng ng: L ra nn t tn cho bn sao l oval4 v tn oval3
c dng trc ?. ng l ta dng tn oval3 cho mt th hin
khc, c to ra trc. Tuy nhin, th hin b xa b nn bn c th
dng li tn oval3 m khng gy ra xung t.
Nhn tin, xin ni nh vi bn rng nu ta to ra mt th hin c cng
su vi th hin no c, th hin mi s thay th th hin c cng
su. Cho d bn khng dng cu lnh oval3.removeMovieClip(); xa b
th hin oval3, cu lnh oval1.duplicateMovieClip(oval3, 3); t ng xa b
th hin oval3 c trc su l 3 to ra bn sao ca oval1 su
. Nu khng tin, bn th v hiu ha cu lnh oval3.removeMovieClip();
(ghi du // u cu lnh) v chy li chng trnh thy kt qu vn nh
hnh 1.
Vi th hin c to ra vo lc chy, bn cn c th lm cho n thay hnh
i dng. Bn vit thm hai cu lnh nh sau:
?
1
2
3
4
5
6
7
8
9
10
11
...
//oval3.removeMovieClip();
oval1.duplicateMovieClip("oval3", 3);
oval3._y += 100;
oval3.attachMovie("Oval", "oval1", 1);
oval3.oval1._x += 40;
;
Cu lnh oval3.attachMovie(Oval, oval1, 1); nhm to ra th hin mang tn
oval1 ca nhn vt Oval bn trong th hin oval3 vi su l 1. Bn ch ,
su 1 ca th hin oval1 va thm l su bn trong oval3.
Cu lnh tip theo oval3.oval1._x += 40; dch chuyn th hin va thm qua
phi cho d phn bit. Th chy chng trnh, bn thy kt qu nh hnh 2.
Th hin oval3 gi y tr thnh
mt th hin phc hp bao gm hai hnh -van, trong hnh -van va thm
c tn ring l oval1. Ni r hn, oval3 khng cn l th hin ca nhn vt
Oval, m l mt phc hp cha ng hai th hin ca nhn vt Oval.
Th vit thm cu lnh co chiu rng ca oval3 theo phng ngang (ch
cn 50%):
?
1
2
3
4
5
...
oval3.attachMovie("Oval", "oval1", 1);
oval3.oval1._x += 40;
6
7
oval3._xscale = 50;
;
bn thy c hai hnh -van ca oval3 u b p nh nhau.
Chc bn thc mc kinh khng: Sao li dng tn oval1? Tn oval1 dng
cho th hin u tin ri m!. Bn yn tm, th hin oval1 va to ra nm
bn trong oval3. Nhn t bn ngoi oval3, th hin va thm c tn l
oval3.oval1. Tn oval1 c dng trong hai phm vi (scope) khc nhau nn
y cng khng c xung t trong vic t tn.
Bi 22 : Nhn vt trng rng T hc lp trnh Flash
Bn hy m li tp tin FLA cha on m th nghim vic to cc th
hin vo lc chy chng trnh. Ta vit nhng nht khung 1 ca
thi tuyn chnh, do bn cn bm vo khung 1 trong bng Timeline,
g F9 m bng Actions Frame.
Cc cu lnh vit to ra cc th hin khc nhau ca nhn vt Oval. Bn
to ra nhn vt Oval t trc bng cch v hnh -van v chuyn hnh
thnh nhn vt.
Bn c th to ra bn thn nhn vt vo lc chy, khng cn to trc nhn
vt nh lm. l loi nhn vt trng rng (empty movie clip) cha c hnh
th g c vo lc c to ra. Sau khi to ra nhn vt nh vy, bn c th
dng cc cu lnh thch hp v vi chn dung cho n. Bn cng c th
a vo nhn vt trng rng cc th hin ca nhn vt khc, to thnh nhn
vt phc hp. Trong thc t, ngi ta thng to ra nhn vt trng rng v
a vo cc hnh nh c ti xung t my ch (khi vic ti xung hon
tt). iu ny c thc hin vo lc chng trnh ang chy, khng i hi
cc hnh nh c ti xung ngay khi khi ng, nh vy rt ngn ng k
thi gian khi ng ca chng trnh.
Bn n Ctrl+A v g phm Delete xa mi cu lnh vit. Bn vit on
m mi nh sau th to nhn vt trng rng:
?
1
2
3
4
5
6
7
8
9
10
11
createEmptyMovieClip("myOvals", 1);
myOvals._x = 100;
myOvals._y = 100;
for(i = 1; i < 6; i++) {
myOvals.attachMovie("Oval", "oval" + i, i);
}
Cu lnh createEmptyMovieClip(myOvals, 1); to ra mt th hin ca nhn
vt trng rng thi tuyn chnh, c tn l myOvals v c t su l
1. Hai cu lnh tip theo quy nh honh _x v tung _y ca th hin
(d n cha mt mi). Vng lp for c nhim v lp li nm ln vic to th
hin ca nhn vt Oval bn trong myOvals. Nh li cch dng hm
attachMovie(), bn hiu ngay: cc th hin ca nhn vt Oval c tn l
oval1,, oval5 v c t cc su t 1 n 5 (cc tr kh d ca bin i)
bn trong myOvals..
phn bit d dng cc th hin oval1,, oval 5 bn trong myOvals, ta cn
lm cho chng c v tr khc nhau. Bn vit thm nh sau bn di vng lp
for:
?
1
2
3
4
5
6
7
8
9
myOvals.oval1._x = 40;
myOvals.oval2._x = 80;
myOvals.oval3._x = 120;
myOvals.oval4._x = 160;
myOvals.oval5._x = 200;
Nm cu lnh va nu x dch cc th hin qua phi. Cc th hin c honh
_x khc nhau. Bn ch , biu thc myOvals.oval1._x dng din t
honh _x ca th hin oval1 bn trong th hin myOvals. Nu bn vit n
gin oval1._x, Flash s khng thc hin c yu cu ca bn v thi tuyn
chnh khng c th hin no tn l oval1.
Th chy chng trnh, bn thy kt qu nh hnh 1.
Thay v dng n nm cu lnh thay i honh _x ca nm th hin
oval1,,oval5, bn vit li theo cch khc, lch lm hn, ch dng mt cu
lnh trong vng lp for:
?
1
2
3
4
5
6
7
8
9
10
...
for(i = 1; i < 6; i++) {
myOvals.attachMovie("Oval", "oval" + i, i);
eval("myOvals.oval" + i)._x += i*40;
}
/*
11
12
13
14
15
16
17
18
19
20
21
22
23
myOvals.oval1._x = 40;
myOvals.oval2._x = 80;
myOvals.oval3._x = 120;
myOvals.oval4._x = 160;
myOvals.oval5._x = 200;
*/
Cu lnh va thm trong vng lp dng hm eval(), mt hm m bn cha
tng bit. Hm eval() chuyn i mt chui thnh tham chiu (reference).
Chng hn, khi tr s ca i l 1, cu lnh va thm tng ng vi cu lnh
eval(myOvals.oval + 1)._x += 40; hoc myOvals.oval1._x += 40;. Nh c
hm eval(), Flash hiu c rng chui myOvals.oval + 1 dng tr n
th hin oval1 bn trong th hin myOvals: myOvals.oval1.
Nh hm eval(), bn c th to ra bin mi vi tn ty vo lc chy. iu
ny l mt th mnh ca Flash, gip bn a ra nhng quyt nh linh hot
vo lc chy chng trnh, ch khng phi vo lc vit chng trnh.
Bn hy vit tip mt cu lnh na cui chng trnh thay i thuc tnh
_alpha ca th hin myOvals:
?
1 myOvals._alpha = 50;
Chy li chng trnh, bn thy kt qu nh hnh 2. Vic thay i thuc tnh
_alpha ca myOvals tc ng ln c nm th hin oval1,,oval5 ca nhn vt
Oval bn trong myOvals, lm cho chng u tr nn na trong sut (thuc
tnh _alpha ca cc th hin oval1,,oval5 u tr thnh 50). R rng, vic
gp cc th hin ring l vo mt th hin duy nht gip bn thay i ng
lot thuc tnh ca chng
Bi 23 : Gn hnh vi vo th hin T hc lp trnh
Flash
Bn bit rng hnh vi ca mt th hin bao gm cc hm x l tnh
hung nh onClipEvent(mouseDown),
onClipEvent(load), onClipEvent(enterFrame), Thng thng, bn ko
nhn vt t bng Library vo sn khu to ra th hin ca nhn vt. Bn
quy nh hnh vi ca th hin bng cch bm chn th hin v vit cc hm
x l tnh hung cho th hin c chn trong bng Actions Movie Clip.
i vi th hin c to ra vo lc chy chng trnh, cch quy nh hnh vi
ca th hin c khc. Trc khi chy, th hin khng c trn sn khu bn
bm chn. Do vy, bn ch c th gn hm x l tnh hung vo th hin trong
lc chy.
Bn hy m li tp tin FLA dng th nghim vic to cc th hin vo lc
chy, m bng Actions Frame, xa ht on m hin c ng vi khung 1 v
vit on m th nghim mi nh sau:
?
1
2
3
4
5
6
7
8
9
10
11
attachMovie("Oval", "oval1", 1);
oval1._x = 200;
oval1._y = 100;
oval1.onMouseDown = function() {
this._xscale += 5;
}
Ba cu lnh u tin trong on m va vit rt