You are on page 1of 149

Gi th 01: Lm quen vi AS, Your First Look at AS AS l mt ngn ng lp trnh c xy dng trong Flash.

AS ging nh cc ngn ng khc nh Javascript, C++ v.v. nhng bn khng cn bit cc ngn ng khc hc AS (nu c th cng d hn). Bt u hc AS, th chng ta coi th AS l g, lm c nhng g v c quan h g vi cc chc nng khc ca Flash. Trong bi ny, bn s tm hiu coi AS ra i nh th no, xem cch vit AS lm sao, tm hiu AS lm c nhng g v sau sau cng l xc nh c ni lu tr AS trong Flash. i st ngha v tin cho sau ny, mnh s khng dch mt s t ng ra ting vit nh script, movieclip v.v. Script l g? AS l ngn ng lp trnh, vi cc lnh sai khin Flash movie lm vic theo ng nhng g mnh vit (ch c mnh vit sai ch computer khng lm sai ). Phn nhiu th AS ch lm vic trong mi trng ca Flash, tuy nhin AS cng c th gi lnh cho browser, h iu hnh v.v. Script c th ngn gn vi ch hay cng c th di c trm trang. Script c th c vit gp li mt ch hay cng c th vit ri rc khp ni trong movie. Xut x ca AS AS rt ging ngn ng C++, Java, javascript .v.v v c da trn tiu chun do ECMA (European Computer Manufactuers Association) lp ra gi l ECMAScript. Nhiu ngi hiu lm rng AS da trn Javascript, nhng thc cht c 2 u da trn ECMAScript. Lc u vit script trong Flash rt n gin v cho ti Flash 4 mi uc pht trin nhng cng vn cn "th s" vi nhng vng lp v cc iu kin "if...else". Cho ti Flash 5 th dn Flash mi c th lp trnh v gn lin script vi cc yu t trong movie. . Sang ti Flash MX th AS tr thnh ngn ng lp trnh ton din vi hn 300 cu lnh, hm .v.v Nhn bit AS AS n gin l nhng cu lnh c vit bng ting Anh (v l ny m mnh s khng dch cc t ting Anh lin quan n AS, v mt phn th mnh khng gii thut ng computer hay ting vit cho lm) v cc php tnh v du cu. V d sau: ActionScript on (press) { gotoAndPlay ("my frame"); }

Bn c th gii ngha on m trn bng cch tm hiu cc t chnh trong . Ch "press" gi rng ngi dng ang kch chut vo mt ci g , (v trong trng hp ny l ci nt) Ch k tip "gotoAndPlay" do 4 ch "go to and play" gp li, gi rng AS ra lnh cho Flash timt im no trong movie v bt u chi t im . AS c th lm nhng g? Flash movie gm c cc scence (cnh), v mi cnh s c 1 timeline (thi gin biu???) v timeline s c cc frame (khung) bt u t s 1. Thng thng th Flash s chi t frame 1 cho ti frame cui ca scence vi tc c nh v dng li hay lp li t u tuy theo ngi lm Flash. Mc ch chnh ca AS l thay i th t trong cch chi ca Flash. AS c th dng bt frame no, hay chy ngc tr li frame trc hay nhy vi frame ri chi tip. Nhng khng ch l nhng g AS c th lm c. AS c th bin film hot hnh ca Flash thnh mt chng trnh ng dng c s tng tc ca ngi dng. Di y l nhng c bn m AS c th lm:

Hot hnh: Bn khng cn AS lm hot hnh, nhng vi AS th bn c th to nhng hot hnh phc tp hn. V d, tri banh c th tng xung quanh mnh hnh m khng bao gi ngng, v tun theo cc nh lut vt l nh lc ht, lc ma st, lc phn v.v Nu khng c AS th bn cn phi dng c hng ngn frame lm, cn vi AS th ch 1 frame cng Navigation (hng bit dchlm sao cho hay ): thay v movie ch chi tng frame 1 theo th t th bn c th dng movie bt c frame no, v cho php ngi dng c th chi bt c frame no .v.v Thu nhp thng tin t ngi dng (user input): bn c th dng AS hi ngi dng 1 cu hi, ri dng thng tn trong movie hay c th gi cho server hay lm nhng g bn mun. Thu nhp thng tn t cc ngun khc: AS c th tng tc vi server v ly cc thng tin t server hay text file Tnh ton: AS c th lm bt c php tnh no m ton hc cho php Thay i hnh nh trong movie: AS c th thay i kch thc, mu sc, v tr ca bt c movie clip (MC) no trong movie flash ca bn. Bn c th to thm phin bn hay xo bi phin bn ca MC vi AS Phn tch mi trng ca my tnh: Vi AS bn c th ly gi t h iu hnh hay a ch ang chi movie Flash . iu khin m thanh trong flash movie: AS l cch tt nht iu khin m thanh trong Flash,AS c chi chm, chi nhanh, ngng, quay vng .v.v bt k m thanh no trong Flash.

Pht trin cc kh nng ca AS iu quan trng nht m AS c th lm cho bn l nhng g cha ai ngh ti Vi AS v tr tng tng v c sng to ca bn th khng c g l khng th xy ra vi AS c. Mc ch ca cc sch, v ca VNFX l hng dn bn hiu bit v Flash t

bn c th t dng n lm ra nhng sn phm tuyt vi m khng ai c. Vit AS u Cu hi u tin nhng ai tm hiu AS thng hi l "Vit AS vo u?". Flash c mt mi trng lm multimedia kh phc tp. Nu bn dng Flash ri hay c qua cc hng dn i km vi Flash, th bn bit cc yu t c bn nh timeline, key frame v.v. nu bn cha bit th mnh khuyn bn nn tm hiu trc ri tip tc y. trong mc Flash Tng Qu, VNFX c post link download 3 ci CD hng dn c bn cho ngi cha bao gi dng Flash. Vit AS time line AS c th vit vo key frame bt c timeline no. lm nh vy, bn chn key frame trong timeline trc ri bn m Action Panel ra (c th nhn F9) vit hay xem AS c vit . Mnh khuyn bn nn dng Action Panel di dng Expert hn l Normal, v nh vy bn s hc c nhiu v l hn. Khi vit AS vo key frame nh vy th AS key frame s hot 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 dng li cho ti khi c lnh khc. cch vit ny gi l vit vo time line Mt trong nhng l do vit script vo time line l khi bn mun dng function (hm), v function cho php chng ta ti s dng on m t nhiu ni, nhiu level khc. Vit AS nt Cc phn t ca Flash movie c gi l symbol (biu tng). thng th symbol l cc hnh nh. V c 3 loi symbol: button (nt), graphich (hnh nh), movie clips(on phim). 3 loi trn th AS khng th vit lin vi graphic, cn button v movie clip th OK. Nt s khng c tc dng g c nu nh khng km AS ln trn n. Mun km AS vo nt th chn nt trn stage (sn khu: din tch ca flash movie), ri sau m Action panel v vit vo nh ta vit vo key frame. AS vit trn nt ch hot ng khi chut hoc bn phm tc ng ln nt m thi Vit AS MC MC khc vi graphic ch MC c t tn khi mang vo stage, MC thng l hnh nh ng, v c th c AS km theo MC. vit AS vo MC th cng tng t nh ta lm vi nt. AS km theo MC c th iu khin MC hay l cc MC trong cng mt timeline hay cc timeline ngoi movie Bi tp

1. To mt movie mi 2. to 3 key frames 3. Dung Flash v mi hnh khc nhau cho mi frame 4. Chy th movie (nhn Control + enter) 5. Sau tr li timeline, vit vo keyframe 2 on m : "stop();" 6. Cho chy th movie ln na 7. V k ny bn ch thy Flash chi ti frame th 2 th ngng, v bn thnh cng trong vic vit AS : Gi th 02: S dng Action panel, Using the Script Editing Window Nu dn ho coi Timeline l nh th dn lp trnh vi AS coi Action Panel l ni c ng ca mnh, ti dn AS c th thay i, vit tt c cc lnh. V vy rt quan trng l bn c th s dng quen thuc Action Panel Flash MX s dng cc panel gip bn c th ly cc thng tin v movie bn ang lm mt cch d dng. Khi bn ci t v chay Flash ln u tin, Flash s hi bn mun s dng Flash nh th no v Flash s xp t cc panel cho hp l. Bn cng c th thay i cch xp t theo ca bn. Ni chung bn nn xp t cc panel ca bn lm sao cho thun tin cho bn nht, v ci ny cng cn c kinh nghim Mnh dng dual monitor, mnh close ht cc panel ch gi li 2 ci chnh trn mn hnh, mnh ko ci action panel v property panel qua mt bn monitor, cn ci bn kia cho ci stage, nu cn m panel no th mnh dng phm tt m. S dng Action panel c 2 cch: bnh thng (normal) v chuyn dng (expert). Khi mi chy my ln u th Action panel c set di dng bnh thng. dng bnh thng th bn khng c th nh trc tip cc cu lnh, m phi chn t cc menu bn tay tri ca panel. Vi setup nh vy th bn khng bao gi phm phi li khi vit AS c. Mnh s b phn hng dn dng normal v mnh thy dng normal mode s khng bao gi tin c, dng expert mode lc u hi mt nhng bo m l cc bn s hc c mau v nh lu hn S dng Action panel vi expert mode th bn c nhiu t do hn, nhng t do ng ngha vi trch nhim nn bn phi cn tht khi vit code. T normal mode chuyn sang expert mode th nhn phm tt CONTROL + SHIFT + E, chuyn ngc li th dng CONTROL + SHIFT + N (nh kch chut vo action panel trc khi dng phm tt). Bn c th i t Normal mode sang expert mode bt c lc no, nhng i ngc li th ch c khi m code ca bn khng c li. Action panel c popup menu (mi tn ch xung di, nm gc phi ca action panel) v trong c nhiu lnh rt tt cho bn khi bn dng Action panel, nht l i vi Expert mode. Bn c th tm v thay th bt c cu no, ch no trong script ca bn. Phm tt cho tm kim l Control + F v cho thay th l Control + H, nhn F3 th Flash s tip tc tm ch, cu bn mun tm.

Mt lnh na l "Goto Line" gip bn tm c cu bn mun tm. Lnh "Check Syntax" s r sot script ca bn v tm nhng li c php. Lc mi tp vit AS, th dng nn thng xuyn dng Chech Syntax check li trong sctipt. Lnh tip theo l "Auto Format" v "Auto Format Options" gip cho bn trnh by script ca bn cho d c hn. Bn c th thay i mu sc, font ch v.v. cho script ca bn cho bn d c code hn bng cch vo Edit > Preferences > ActionScript Editor. Cc phn cn li ca pop-up window cho php bn c xut hay nhp AS di dng text file v in script ra giy. Tuy gi l expert mode nhng thc ra dng cn d hn l normal mode. Bi v di expert mode thi Action panel chng khc g chng trnh "note pad" hay "text pad". Bn ch vic vit nhng g bn mun vo . Khi dng di expert mode, bn vn c th tham kho cc cu lnh, cc c php ca AS ci khung bn tri ca Action Panel. V nu bn tn th mt s quy tt th bn s s c chc nng "Code Hint" ca Action Panel, chc nng ny to nn nhng khung nh nh trong c nhng cu lnh ca AS ng hp quy cho bn la chn. tr thnh mt "cao th" v AS th bn khng th no khng nm vng v Action panel c. Sau y l bi thc hnh nho nh, gip bn lm quen vi Action panel di expert mode 1. To mt movie mi 2. Chn key frame u tin (frame s 1) ca layer 1 (mnh khng dch ch layer = lp v d trng vi class= lp) 3. M Action panel (c th dng phm tt hay vo trong phn Window > Action panel 4. Chuyn sang expert mode (dng phm tt hy vo trong pop-up menu ca Action panel i) 5. Vo ch vit AS 6. Vit on code sau: ActionScript trace ("I am expert"); Khi bn th movie th dng ch "I am expert" s c hin ra trong Output panel, v mnh s cp n lnh trace() vo nhng gi ti

Gi th 03: Hc cch lp trnh, Learning to program Lp trnh c th coi l khoa hc v ngh thut. V vy lp trnh vin gii cn c 2 iu kin kin thc v ngn ng m h dng v tnh sng to, t khi no c trng hp ch c 1 cch lp trnh cho mt n lm. Trong qu trnh vit AS, bn s to ra cho ring mnh mt phong thi vit code kh c trng. C th mi u bn s dng phong cch vit code trong nhng bi vit ny, ri sau bn s t t chuyn sang phong cch ca ring bn Thng th khi nim v cc ngn ng lp trnh u ging nhau, v trong bi ny s bn v nhng khi nim lp trnh v lm sao p dng n trong Flash Cch suy ngh ca computer Tht ra computer dt lm chng bit suy ngh u, ch bit lm vic theo mnh lnh mt cch khng suy ngh. V vy computer khng bao gi li m li ngi vit lnh sai khin n. Cn AS ch l mt chui lnh, ch th cho computer, hay ng ra l Flash phi lm nhng g trong mi trng runtime (runtime environment). Khi vit AS th bn nn t coi mnh "ngu" nh computer, v c li nhng dng lnh AS v ngh ti kt qu ca vic thi hnh lnh . Khi t t mnh vo v tr ca computer, bn s on c script ca bn s lm nhng g trong mi trng runtime, v bn c th thy ra nhng li m bn v mc phi. Khi m bn tr thnh din vin tuyt vi trong vai computer th bn cng tr thnh mt lp trnh vin ti ba. Lnh, hm, v php tnh Lnh (command) l yu t cn bn ca AS ch th Flash lm mt hnh ng c th. Lnh c thi hnh tuyt i trong cc trng hp kh thi. V d nu nh ta vit gotoAndPlay(5) cho Flash ti frame 5 v chi, nhng nu trong movie khng c frame 5 th lnh khng th lm c. Hm (function, mnh s dng t function nhiu hn l hm) l phn tnh ton cc php tnh v cho ra (return) mt kt qu. V d hm random() s cho ra mt con s ngu nhin no , hay hm sqrt() s cho ra gi tr bnh phng ca 1 s m hm nhn c truyn cho. Lnh v hm u c th c truyn cho 1 hay nhiu thng s (parameter, mnh s dng t parameter thay v thng s), v nhng thng s gip cho hm v lnh c c th hn. V d gotoAndPlay(5) th 5 l thng s, nu nh khng c thng s ny th lnh "gotoAndPlay" s khng bit r phi ni Flash i u. cng nh hm sqrt() cng cn c thng s cho ra gi tr bnh phng ca s y. S khc bit gia hm v lnh chnh l cc php tnh. Php tnh thng l nhng du +, -, *, / hay l php so snh <, ==. >. Hm c php tnh, lnh th khng

Bin s Bin s (parameter) cn thit trong mi ngn ng lp trnh v n lu tr thng tin v mt ci g trong chng trnh. Bin s gm c 2 phn: tn v gi tr. i khi bn ch cn lu tr thng tin trong bin s mt thi gian ngn, v d bn mun Flash thi hnh 1 s lnh 10 ln th bn cn m s ln m Flash thi hnh lnh c th ra lnh cho Flash ngng ngay sau khi thi hnh xong lnh ln th 10. Nhng cng c lc bn cn phi lu li thng tin trong mt thi gian di hay trong sut qu trnh thi gian Flash chi. Tn ca bin s thng l mt nhm t, hay cng c th ch n gin l 1 t, hay 1 ch ci. Thng thng tn ca bin s nn r rng d hiu v ni ln c tnh cht ca thng tin m bin s ang lu tr. V d nu bn mun lu tr tn ca ngi dng trong bin s th bn nn t tn bin s l userName (mnh ngh t tn ting Anh d hiu hn, v ting vit khng du cng d b hiu lm), bn c th t tn bin s l "n" nhng qu ngn, ngi c script ca bn s kh hiu, nu t l name th d trng vi cc bin s hay t kho khc (_name l mt c tnh ca i tng MovieClip) Khi vit AS, bn cn lu vit lm sao cho d hiu v d c. V cc lp trnh vin quy c tn bin s theo quy tc sau: tn bin s lun vit thng ch u tin, v vit hoa ch ci u tin cho cc ch k tip, v d userName, userLastName, userMotherMaidenName v.v. Lu rng ch cc ch ci v s mi c dng t tn cho bin s, v lun bt u tn bng ch ci. C nhiu loi bin s lu tr nhiu loi thng tin, v ngay mi loi thng tin cng c th c nhiu loi khc nhau na. Nh s (number) l mt loi gi tr ca bin s, v di n cn c cc loi khc nh s nguyn (integer), s ... khng nguyn (floating, double). Bn cng c th dng bin s cha cc chui (chui gi tt cho chui ch ci), chui c th ch c 1 ch ci, nhiu ch ci hay l khng c g ht, tt c cc chui sau y u hp l: "ablsdfjksl", "a", " ", "". Khi vit mt chui th cn dng du ngoc kp ("") bt u v kt thc chui. Trong cc ngn ng lp trnh khc nh Java, C++, hay ngay c ActionScript 2.0 trong Flash MX 2004 th bn phi xac nh trc loi thng tin no bn s lu trong bin s. Nhng vi ActionScript 1 (trong FlashMX) th bn khng cn lm vic ny. V d bin s userName lc u cha 1 chui, nhng sau li cha 1 s nguyn th cng vn hp l. Ngoi chui v s, cn c nhiu loi khc na nhng chng ta s cp ti vo nhng bi sau. iu kin Trong nhng trng hp chng ta khng bit nn ra lnh cho Flash phi lm g cho thch hp vi tng tnh hung th ta c th dng "iu kin" ra lnh cho Flash.

V d nu nh bn ra lnh cho Flash khng cho ngi dng coi mt on phim trong Flash nu nh user di 18 tui, nu user trn 18 tui th hy chi on phim y. Trc tin, Flash s so snh s tui ca user vi s 18, nu nh s tui ca user tho mn iu kin chng ta t ra th Flash s c 1 gi tr true t php so snh trn, v ngc li s l false iu kin s lun lun l ng (true) hay sai (false). Mt gi tr ch c ng hay sai th c gi l boolean. Sau khi thc hin php so snh v c c kt qu t php so snh trn, Flash s chn mt trong 2 gii php do chng ta a ra cho tng trng hp. i khi chng ta cn c nhiu iu kin hn ch l n gin "true" hay "false", v d nh bn mun Flash chi on phim A cho ngi trn 18 tui, di 18 nhng trn 13 th chi on phim B, v nhng ai di 13 th chi on phim C. Vng lp Con ngi lm ra computer v li khng mun lm nhiu, m bn ci cho computer. Nht l phi lm i lm li 1 vic no th cng nhm chn. V vy vng lp (loop) l mt yu t quan trng trong cc ngn ng lp trnh. AS cng vy, bn c th dng vng lp trong script. Trong vng lp, "iu kin" rt quan trng. Mi vng lp cn c im bt u v im dng v mt iu kin bo hiu im dng ca vng lp. V d nh bn mun cho vng lp chy 10 ln th s c 1 bin s dng m vng lp, bt u t 0, Mi vng lp chy th bin s ny s tng thm 1. Khi ti 9 th vng lp s dng li. Sau y minh ho ca vng lp ny: 1. Mt s lnh trc vng lp 2. Bt u vng lp, set bin s counter = 0 3. Lm mt s lnh trong vng lp 4. Tng bin s counter +=1 5. Nu bin s counter nh hn 9, tr li bc th 3 6. Ra khi vng lp, v tip tc chng trnh. y chng ta bt du bin s counter = 0 v quy c thng thng cc ngn ng lp trnh u bt u vng lp 0. Mt im ng lu ca vng lp l iu kin c xt trc khi thc hin cc lnh trong vng lp. Trong vi trng hp, iu kin s c xt sau khi thc hin cc lnh trong vng lp. Chng ta cng c th ngng vng lp trc im dng ca n, v iu ny s c cp ti vo bi k tip Lm nhng iu khng tng Lnh, hm, php tnh, bin s, thng s, iu kin, vng lp l nhng phn cn bn trong ngn ng lp trnh, v ci ny th ai cng bit nhng lm sao phi hp li thnh mt chng trnh hon ho mi l ci kh. Chng trnh n gin ch l mt tp hp lnh cho computer gii quyt 1 vn no . V vy trc khi vit 1 chng trnh chng ta cn phi xc nh "vn " cn phi gii quyt. V d thc t ngoi i, m bn nh bn ra ch mua g. Nhng ch

n gin ni ra ch mua g th cha v bit mua g sng hay g lm ri. nu mua g sng th mua loi no v.v. l cha ni ti mua g ch no, gi c ra sao v.v. Nu nh bn m ni r l ra ch bn thnh, mua 1 con g mi du, nng khong 2 kg, vi gi khong 10000 th tht l d dng cho bn phi khng? Bit c vn mua g ri th tm cch mua g. Bn phi "ln k hoch", nn nh bn ch hay i taxi ra ch bn thnh. Nu i taxi i hng no, tm s phone gi, v.v. cn nh bn ch i th nh tn no. Ri nn mc qun o no i ch. Ra n ch th phi mc c lm sao, tr tin mt hay ghi s n. Bn thy khng, t mt chuyn mua g n gin vy m c th tn c ngy tri ln chng trnh Vit AS, bn cn phi lu ti tt c mi vic d nh cch my cho Flash c th lm ng theo nh bn trong mi tnh hung. Cc chng trnh c bug khng phi v ngi vit d m v cha ngh ti ht mi tnh hung thi. Tm li, iu quan trng trong lp trnh l kh nng phn tch mt vn chnh thnh nhiu vn nh cho ti khi khng cn nh hn na, v sau xy dng chng trnh t gii quyy cc vn nh ln dn cho ti vn chnh. Vit m hon chnh B (bug) n gin l li ca chng trnh m bn to ra. Bug c th ch l nhng li c php n gin, hay l nhng li phc tp do cch bn gii quyt vn trong mi trng runtime. trnh c bug trong script ca bn th bn nn tn nhiu th gi vo giai on phn tch, thit k chng trnh cho script ca bn. Kim tra cc on code nhiu ln, v ng vai "computer" cho tht ging, ng suy ngh, m thi hnh cc lnh trong script ca bn. Vit tng on code nh ri rp li vi nhau (v vy m lp trnh theo hng i tng c s dng nhiu nht) Nu script ca bn c bug th ng th m nn lng, v khng c chng trnh no do con ngi lm ra m khng c bug c. V vy bn ng c gng vit code sao cho tuyt ho khng c li. Nu c bug th bn dit bug thi Bn c th chun b "chin u" vi bug bng cch vit code sao cho d hiu v d c, vit nhiu ch thch cho cc on m. i khi dit bug (debug) rt n gin nhng c khi cng rt kho m bit bug u dit. Flash c km theo vi cng c gip bn debug d dng hn, chng ta s ni ti cc cng c ny trong bi ti. Gi th 04: Vit code trong Flash, Writing code in Flash Khi bn vit script, bn s dng tt c nhng t kha, v k hiu v.v. Vy trc tin chng ta s phn tch mt on script sau y. on script ny gn vo 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); } } } Dng u tin xc nh nhng on code sau c kch hot khi m user nhn vo nt. hm on(press) ch c th s dng trong vo trong nt m thi. Ngoi ra bn c th dng on(release) nu nh bn mun kch hot on m trn sau khi user nhn nt, v bung tay. Du ngoc mc {} u v cui on code, gi on code vo lm mt, v u c kch hot khi nhn nt. Cc bn lu thy on code c vit vo trong cho d nhn thy c on code ny ph thuc vo on(press). Cc bn nn vit li vo trong cho nhng on code ph thuc vo 1 lnh hay hm no . Dng th hai lp ra bin s (mnh s vit tt l var nhe) tn myVariable, v t gi tr bng 7 cho n. tng t hng k tip lp ra var tn l myOtherVariable v cho gi tr ca n l "Macrmedia". C 2 cu ny c kt thc bng du chm phy ; Dng th 4 chnh l vng lp (mnh s gi l loop cho tin nhe) for (s nhc ti cc loi loop pha di) v cc iu kin ca loop ny. N s lp 10 ln vi iu kin bt u l i=0 v n s tng thm 1 cho mi ln lp cho ti khi n ln ti 9. Tng t nh on(press), for loop cng c on code cho ring n, v c bc quanh bng { } v on code trong ch kch hot khi m cc iu kin ca for loop c tha mn. Dng th 5 l lnh trace(), lnh ny ch vit thng tin ra output window trong lc bn lm vic vi Flash, user s khng thy c. K tip l iu kin, if l t kho trong Flash, v n s kim tra kt qu ca php so snh myVariable + 3 ==5. Nu m kt qu l ng th n s kch hot lnh trace trong, v s vit ra output window gi tr ca myOtherVariable Vy l bn thy mt on script hon chnh bng AS ri. Tip theo chng ta s ni n vi phn khc ca AS. Output window trn chng ta c nhc ti output window, m khng ni r l g. Output window l mt window trong software Flash, v ch xut hin khi m bn chy th movie. Nu Flash compile movie cho bn v pht hin ra li th Flash s vit ra cc output window ny. Trong khi chy th movie, th lnh trace() mi c th vit cc thng tin ra output window. Output window rt quan trng trong vit "dit b", dng n chung vi trace bn c th quan st cc thng s, bin s, cc i tng, thuc tnh i tng .v.v Trong lc hc AS, bn c th vit mt an script ngn khng lm g c nhng ch vit thng tin ra output window, nh on code trn.

Thc hnh: vit thng tin ra output windown Cch tt nht hiu r chc nng ca output window l s dng n. By gi mnh s vit mt on code ngn gi thi tin ra output window nhe. 1. To mt file mi 2. Chn frame u tin ca movie, m Action panel. Chnh kch thc cho action panel ln vit, v nh dng expert mode 3. Kch chut vo phn vit script v vit cu sau: trace("hello world"); 4. Chy th movie (Control + Enter) 5. Bn thy g output window? (Nu output window ca bn cha m th hy nhn F2) Ging nh action panel, output window c 1 ci pop-up menu nho nh trn gc phi. Bn c th dng n copy, xo hay save ni dung ca output window hay c th tm kim ch, v.v. Ngoi ra, pop-up menu ny c phn cho bn chnh ch "dit b", bn c th chn khng cn output window in ra cc li (none), hay ch in li (error), hay ch in cnh bo (error) v cui cng l in ra chi tit cc li hay cnh bo (verbose) Bin s cc b v ton b trong gi th 3, chng ta c nhc n variable (bin s) dng lu tr thng tin. V s dng variable trong AS rt d dng. Bn ch cn n nh gi tr cho variable. V d: myVariable = 7. Chng ta to variable c tn l myVariable v n nh 7 l gi tr cho n. (bn c th t tn cho variable l bt c g bn mun) By gi bn c th th vit on code sau: ActionScript var1= 7; var2= "hello world"; trace ("var1: " + var1+ " /var2: " + var2); Khi bn chy th movie th output window s c hng 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 loi, local v global. Global variable (bin s ton b) th bn c th truy cp gi tr ca n bt c ni no trong movie. To global variable khng i hi mt bn phi lm mt ci g c bit c, bn c th dng n nh cch trn, v Flash t ng bin n thnh global variable. Flash movie dng h thng level, v timeline ca movie chnh l root leve (gc), cn cc movie clip cng chnh l mt Flash movie nh trong Flash movie ln. Cc hnh nh, script trong mt movie clip l 1 level thp hn root level.

Local variable (bin s cc b), khc vi global variable, local variable ch c tr truy cp trong cng mt on code, hay trong cng mt timeline. Khi dng local variable th khi ra khi timeline hay on code th Flash s xo local variable ra khi b nh. Mun to local variable th dng t kho var trc tn ca local variable, v d: var myLocal = "This is local"; Bn ch cn dng t kho var 1 ln thi, nhng ln dng sau th ch cn dng tn ca local variable thi. V d on code: ActionScript var myLocal = 9; myLocal = 11; trace(myLocal);

Php so snh v cc php tnh So snh 2 gi tr trong AS rt n gin, dng cc k hiu ton hc nh <, >, = Khi n nh gi tr th dng du =, v cho khc bit th khi so snh dng ==. on code sau xt coi gi tr ca a c bng 7 khng, v in kt qu ra output window. V khi test on code sau, bn s thy true output window ActionScript var a = 7; trace(a == 7); Nu bn dng ln = vi == th s b li runtime ch Flash s khng c th tm c li ny cho bn. Bn c th dng == so snh 2 chui mu t: ActionScript var myString = "Hello World."; trace(myString == "Hello World."); trace(myString == "hello world."); Khi bn test on code trn th bn s c c "true" v "false" output window, v ln so snh th nht th bng nhau, nhng ln th hai th khng v ch H v h khc nhau. Nu bn mun th coi 2 gi tr c khc nhau khng th dng ky hiu != ActionScript var a = 7; trace(a != 9); trace(a != 7); Hm trace u tin s cho ra "true" v 7 khc 9, v ci th hai th s cho ra "false"

Nu bn mun th gi tr coi ln hn hay nh hn th dng > v < ActionScript var a = 7; trace(a < 8); trace(a > 6); trace(a < 1); on code trn s cho ra "true", "true" v "false" trong output window v "a" qu tht nh hn 8 v ln 6, nhng khng nh hn 1. Nu bn mun th gi tr coi ln hn hay bng nhau hoc l nh hn hay bng nhau th dng k hiu >= v <= ActionScript var a = 7; trace(a <= 9); trace(a >= 5); trace(a >= 7); on code trn s cho ra 3 kt qu "true" c. Bn c th thay i gi tr ca variable vi cc php tnh n gin nh cng (+), tr (), nhn (*), chia (/). V d mun thm 4 vo gi tr ca a th vit a = a + 4. AS cng c cch vit tt nh Java, C++ cho v d ny, a += 4 Nu bn mun thm 1 vo a th bn c th vit nh 2 cch trn a = a +1 v a += 1 v cn cch th 3 a++ . Du ++ ch lm tng thm 1 cho gi tr thi. C 2 cch dng ++, 1 l sau variable nh cch trn, v 1 cch th trc variable. By gi th on code sau: ActionScript var a = 7; trace(a++); trace(a); output window bn s thy 7 ri mi ti 8. dng th 2, hm trace s cho ra gi tr ca a trc ri mi tng gi tr ca a ln thm 1. By gi xem v d khc: ActionScript var a = 7; trace(++a); trace(a); output window bn s thy 8 v 8. dng th 2 ca v d ny, hm trace s tng gi tr ca a trc ri mi cho ra gi tr ca a. Tng t nh ++, AS cng c cch vit tt cho gim gi tr ca variable l du -, -=, =- v --. Php tnh nhn v chia th ch c *, *=, /, /= thi. iu kin Trong AS v cc ngn ng khc, if ... else chnh l cc t kho ca iu kin. Ting

vit c ngha l "nu ... nu khng". T kho if dng kt qu ca s so snh no i ti quyt nh kch hot mt on code. on code sau s so snh gi tr ca variable a vi 7, nu ng th Flash s chi frame 10 ActionScript if (a == 7) { gotoAndPlay(10); } T kho if lun bt u cho 1 iu kin v tip theo s l s so snh. Lun t code so snh gia ngoc n (). Tt c cc code c kch hot nu iu kin c tho mn s trong u ngoc mc {}. T kho else b sung cho if trong trng hp bn mun thc hin mt on code nu iu kin ca if khng c tha mn. V d: ActionScript if (a == 7) { gotoAndPlay(10); } else { gotoAndPlay(15); } Nu trng hp cn tha mn nhiu iu kin th c th dng c php if .... else if ... else. Bn c th c bao nhiu ci else if cng c. Ny gi ta chi ni ti iu kin da trn 1 s so snh, nhng AS cng cho php dng so snh a hp (compound comparision). Trong iu kin ca Flash ta c th dng nhiu so snh i ti mt kt qu chnh xc 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 (cn c th c vit l &&) yu cu phi tho mn iu kin ca 2 php so snh. Bn cng c th dng t kho or (cn c th c vit l ||)nu nh ch cn tho mn 1 iu kin trong 2 php so snh thi. ActionScript if ((a > 10) or (a < 15)) { gotoAndPlay(10); } Vng lp C php ca vng lp (loop) th hi rc ri hn so vi c php ca iu kin if. nhng

n tng t nh C, C++, Java. Gm c 3 loi vng lp chnh l for loop, while loop v do-while loop for loop c coi l vng lp chnh vi t kho for v c php ca n nhn nh sau: ActionScript for(var i=0;i<10;i++) { trace(i); } Nu bn cho chy on code trn th bn s c c t s 0 ti 9 output window. for loop tng gi tr ca variable i trong sut qu trnh thc hin loop. iu kin ca for loop c 3 phn chnh, v c cch bit bi du chm phy ( . u tin l iu kin bt u vi vic to local variable cho for loop var i=0. phn ny for loop ch thc hin c 1 ln duy nht lc bt u. Phn th hai l iu kin chnh ca for loop i<10, s c thc hin mi vng lp. Nu iu kin ny tho mn th mi tip tc vng lp. V phn cui cng l php tnh cho s tip ni ca for loop mi vng lp, y l i++ nn gi tr ca i s c tng sau mi vng lp trc khi vng lp mi bt u. 3 phn ny u c b vo trong ngoc n (). Cn nhng code thc hin trong mi vng lp th trong ngoc mc {}. By gi chng ta gi lm computer v chy ci for loop ny. 1. To local variable v n nh gi tr cho n bng 0 2. Kim tra gi tr ca i c nh hn 10 khng, nu nh hn 10 th vng lp thc hin cc code trong {}, cn khng th ti bc th 5 3. hm trace vit gi tr ca i output window 4. cng 1 vo gi tr ca i, v tr v bc th 1 5. ra khi for loop Ti bc th 5 th gi tr ca i s bng 10 while loop vi t kho while c c php nhn 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 cc code trong vng lp nu iu kin ca while loop c tho mn, v vy bn d dng ri vo trng hp vng lp v hn, v dn n tnh trng treo my. Trong on code trn, bn phi lm th no cho co 1 lc a s nh hay bng 0 cho vng lp ngng li. Ging nh while loop, do-while loop c c php nhn nh sau: ActionScript

do { // code thc hin trong do-while loop } while (a > 0); Ch khc vi while loop l do-while loop thc hin code trong vng lp trc ri mi kim tra iu kin. (while loop kim tra iu kin ri mi chy code trong vng lp) Mun ph ra khi qu trnh t hnh ca 3 loi loop trn th dng lnh break v continue. Lnh break s ph ra khi loop hon ton trong khi lnh continue th ch ph ra khi vng lp hin ti v bt u vng lp mi. To ra mt v d c th rt phc tp, nn chng ta tm khoan bn ti 2 lnh ny cho ti cc bi sau. Hm Cho ti by gi cc script ca chng ta u c vit vo frame u tin ca moive, cch ny ch tt cho nhng chng trnh n gin, nhng nu m chng trnh tr nn phc tp th y khng phi l cch. Hm (function) s cho php chng ta cu to v qun l code d dng hn trong cc chng trnh phc tp. Di y l mt function n gin: ActionScript function myFunction(num) { var newNum = num + 3; return newNum; } Fuction bt u bng t kho function, tn ca function c th l bt c ch g nh cch bn t tn cho variable, nhng lu cch t tn cho fuction lm sao ngi ta c tn c th bit c chc nng ca function. Theo sau tn ca function s l thng s (parameter, cho ngn mnh s gi thng s l param trong cc bi vit ny) c trong ngoc n (). Function c th co 1 hay nhiu param hay khng cn param cng c. Param chng qua ch la variable c dng trong function, nhng variable ny c truyn t ngoi vo khi function c gi. on code c function thc hin s nm gia ngoc mc {}. By gi chng ta phn tch on code trn. Khi function myFunction c gi, th param num c truyn vo, sau function myFunction to ra mt local variable tn l newNum, v n nh gi tr ca newNum bng gi tr ca param num cng vi 3. Sau myFunction dng lnh return n nh gi tr ca newNum l kt qu ca myFunction. Lnh return l lnh c bit ch c dng trong function m thi. Lnh ny s kt thc function. s dng function ny, dng n nh mt lnh hay hm ca AS, ging nh l trace() vy . y l v d: var a= myFunction(7);. Trc tin to mt local var ri sau n nh gi tr ca local var ny bng kt qu ca myFunction vi param l 7, v cui cng thi local var ny s bng 10. Mt trong u im ca function l bn c th ti s dng. Di y l hng code dng chung 1 fuction v cho 3 kt qu khc nhau ActionScript

trace(myFunction(7)); trace(myFunction(13)); trace(myFunction(2)); Khi chy on code ny th output windown s l 10, 16 v 5. V c th ti s dng nn chng ta ch cn thay i code trong myFunction th tt c cc kt qa c c t gi function ny cng thay i theo lun. Dot Syntax Mt iu bn s thy rt nhiu trong qu trnh hc AS l dot syntax (hng bit dch sao by gi) Dot syntax l phng php c dng trong lp trnh theo hng i tng (oob: object oriented programming). y l mt v d ca dot syntax. Nu bn mun ly cn bnh phng ca mt s, v trong Flash c sn function lm chuyn ny ri, v hm ny thuc v i tng ton, tn l Math. Vy mun gi function ny th trc tin bn phi gi tn i tng m fucntion ny trc thuc, l Math, theo sau l du chm (dot), v ri ti tn ca function l sqrt. Cch vit nh sau: ActionScript var a = Math.sqrt(4); Mt cch dng dot syntax khc l truy cp c tnh hay variable ca mt i tng, nh l movie clip. ActionScript var a = myClip._x; var a = myClip.myVariable; Chng ta s cp n i tng Math v MovieClip trong cc bi ti, cn by gi th quan trng l bn nm c khi nim v dot syntax. Ch gii Mt trong c tnh cn c ca lp trnh vin l vit code lm sao cho d c v d hiu. Nhng nhiu khi d khi vit c c gng cch my th nhng on code vn kh hiu cho ngi xem, v vy mi cn nhng li ch gii. Mun ch gii trong AS th ch cn dng k hiu// trc cu ch gii . Nu ch gii nhiu hn vi dng th c th dng kiu sau/* ..... ch gii ....*/. 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 gn 1/3 thi gian pht trin chng trnh. Nu bn nm vng c "ngh thut" dit b th bn s rt ngn c rt nhiu thi gian. C 3 cch dit b hu hin l: phn tch, vit message ra output window v dng AS debugger. Vi cc loi b n gin th phn tch cc on code s gip bn bt trng con b cn dit. Dng output window theo di cc i tng, vng lp, iu kin, v nh vo bn c th bit c ch no trong code c vn , cui cng l dng AS debugger c sn trong Flash. Debugger window cho php bn c th coi ht tt c moi thnh phn trong movie ca bn, cho php bn dng AS bt ch khi no v ch no bn mun. Tham kho thm phn tr gip ca Flash bit cch dng debugger. Gi th 05: iu khin lung movie, Control the flow of the movie S dng AScript l cch iu khin movie n gn nht, nhung li hiu qu nht. Chng ny bn s hc cch :

lm sao dng Movie trn frame Sao nhy t frame ny n frame kia to nt cho php iu khin movie to mt slide show n gin to mt biu din y ..

Dng movie y l cu lnh stop: ActionScript stop(); Khi bn dng cu lnh ny , movie ch tm dng frame m bn t cu lnh. Cc animation bn trong movieClip v cc file ha vn tip tc chy trn frame . Nhng animation ca time line s b dng. cho animation ca timeline tip tc chy, ta s dng mt lnh n gin l lnh play.. ta s bn n n sau. V d Ti frame 1, bn hy th mt text box v vit vo Ch A Ti frame 2, bn hy th mt text box v vit vo Ch B Ti frame 3, bn hy th mt text box v vit vo Ch C By gi bn hay t cu lnh stop(); vo Frame 2, bn se thy ch A xut hin rt

nhanh ri n ch B, nhng ch C s ko thy xut hin,, n gin v cu lnh stop() dng animation ca timeline ti Frame 2. Nhy t frame ny n frame kia Mt cu lnh c bn ca AS l cu lnh gotoAndPlay. Cu lnh ny gip bn c th nhy t frame ny n frame m bn mun. Bn c th s dng s th t ca frame hay l tn ca frame ActionScript gotoAndPlay(7); gotoAndPlay(20); gotoAndPlay("my frame label") bn c th s dng nhiu movies , hay cn gi l cnh(scene) . Nu Cu lnh gotoAndPlay ch c mt tham s, th tham s l frame. Nhng nu c 2 tham s,th tham s u tin l tn ca scene, cn tham ss th 2 l s th t ca frame hay tn frame.

ActionScript gotoAndPlay("My Scene","My Frame"); Khi bn dng gotoandPlay,movies s nhy n frame m bn gi , v tip tc chy, nhng nu bn mun n nhy n frame v dng li, bn co th s dng gotoAndStop . Cu lnh ny dng y ht nh gotoAndPlay, vi la chn 1 tham s hay 2 tham s. Ngoi ra c thm 2 cu lnh cng hat ng ging gotoAndStop , l nextFrame and prevFrame hiu r hn v cc cu lnh ny, ta s i tip phn sau... To nt (button) Nt l mt trong 3 biu tng (symbol) chnh trong Flash, 2 ci kia l movie cilps v hnh To mt button C nhiu cch to nt. Mt trong nhng cch l chn Insert, New Symbol t Menu. Mt hp thoi s hin ln v hi bn t tn v la chn biu tng ca bn l loi Movie clip, button, hay ha. Bn hy chn Button. By gi trong ca s chnh ca Flash s thay i, timeline ca button s thay th timeline ca movie chnh. C 4 frames trong timeLine ca button. Chng c tn l Up, Over, Down, HIt. CHng th hin 3 trng thi ca button, v vng hat ng ca button.

Nu bn t mt ha, chng hn l mt vng trn, trong frame u tin(UP) v ko c g trong 3 frame sau, trng thi Over v Down ca button s ging nh trng thi ca Up. Vng hot ng ca button cng tng t nh vy. Mt khc , bn c th to cc hiu ng khc nhau cho button ca bn. V d nu bn i mu ca vng trn l mu xanh Frame OVER,c ngha l khi bn a chut qua button, button s chuyn sang mu xanh. Khi bn to xong 1 button, bn tr lai movie timeline chnh. V button ca bn sn sng trong th vin ca FLash. Bn ch vic bm F11, tm button ca bn v ko th n vo ni no bn cn trn ca s thit k. To script cho button t script cho button, u tin hy chm mt button. Sau vo ca s Action bng cch bm chut phi ln button v chn Action t menu xut hin. Hy Chc chn rng ca s Action c t ch Expert. Bn c th kim tra bng mt popup menu gc trn cng bn phi ca ca s. y l mt on m thng thng cho button. Bn c th t n trong ca s m v sau kim tra movie xem n hat ng th no. ActionScript on (release) { trace("You clicked the button!") } on : l mt keyword, c gi ra x l mt s kin Release : L mt s kin, khi ngi s dng click vo button v nh chut ra. on m trace s c thc thi. Ngoi ra Release c th thay th bng s kin PRESS, s kin ny ch khc Release ch khi ngi s dng bm vo button, on m trace s c thc thi m ko cn phi th chut ra. Trace : l in ra mn hnh dng ch YOU CLICKED THE BUTTON. Thc Hnh: To mt Slide Show n gin... C l ko phi din t nhiu v Slide Show, cc bn hy tng tng ging Power Point.. Khi chng ta bm chut, cc slide s chuyn sang slide khc. 1. M Flash, chn New 2. Trong Layer 1, t Frame 1 n Frame 4, bn hy t cc biu tng hay hnh nh, text khc nhau phn bit c cc frame 3. Sau bn to mt layer mi, hy t mt button ln layer ny.Tip theo bn chn

Frame 4 ca layer 2, v bm F6. iu ny m bo cho button ca bn s xut hin trong tt c cc Frame ca Layer 1. By gi copy on m sau vo button ca bn, ch nh l copy vo action ca button, ch ko phi vo bt k frame no ActionScript on (release) { nextFrame(); } Cui cng chn Frame 1 Layer 1 action v chn on code sau ActionScript stop(); Hy chy th slide show ca bn = cch bm Ctrl Enter. 5) Xy dng mt presentation n gin: Presentation ny s dng nguyn tc ging ht nh v d Slide show trn, cc bn hay down load file FLA xem .. easy Gi th 06: iu khin movie clip, Controlling Movie Clips 6th Hour iu khin movie clip Bn s hc 1- ra lnh cho movie clip 2-To playback cho animation 3-Tm hiu ch(target) ca movie clip 4-Tp vit code cho movie clip 5-To movie clip c th chy li li. 1) Ra lnh cho movie clip : Mt movie chnh c th rt n gin. N ch cn 1 frame v mt movie clip. Nhng bn thn movie clip li c th l mt animation di. Vic ny d dng thc hin m ko cn Actioncript. iu khin c movie, bn phi t tn cho movie clip. Ch rng mt movies clip c 2 tn, mt tn s dng cho timeline . Mt tn s dng cho actioncript. 2 tn ny c th t trng tn nhau hoc khc tn nhau. Lm sao t tn cho movie clip : Chn insert -----> New Symbol (hoc bm Ctrl F8), t tn cho movies clip (nh la chn option movies clip, ch ko phi l button hay graphic) Tn ny c s dng cho timeline. vd: gear animation Th movie gear animation vo ca s thit k.. PHa di ca s properties, ban s

thy box instance name.. t tn cho movie tn ny c s dng cho Action script , vd : gears v nh vy, khi bn lp trnh , tn s dng l gears , ch ko phi gear animation. bn c th s dng du chm a ra cc lnh cho movie ca bn. v d ActionScript gears.stop(); gears.gotoAndStop(5); Nh rng movie clip lun c level. Nu on m c t trn chnh movieclip, bn ko cn s dng tn movies, ch cn gotoAndStop();. Nu bn t c tn movie vo, Flash s tm movie ca bn t timeline chnh.. Tc l s phi qua 2 level. ---> chm hn cht. 2)Animation Playback Controller Hy down load source code t trn phn download v xem. V c bn, chng ta lm cc vic sau: - To mt Movie ,t tn l gear animation - t instance name l gear(hng dn trn) - Frame u tin ca time line chnh, chn code ActionScript gears.stop(); -To cc button Advance, Previous, Play, Stop, and Rewind -Code cho cc button ln 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 tin ca Flash l time line chnh(Level 0). Nu bn mun ra lnh cho time line ny, bn dng code sau _root.gotoAndStop(); thm ch nu bn t code time line chnh, bn ko cn _root. Ch cn gotoAndStop(); Gi s nu bn c mt movie trn time line, tc l bn c mt level su hn(level 1). Nu bn t time line chnh, mun goi movie gears , bn phi dng cu lnh gears.gotoAndStop(7); _root["gears"].gotoAndStop(7); this["gears"].gotoAndStop(7); C 3 cch trn u ging nhau.. Tuy nhin this c ngha l level hin hnh. V d trn, level hin hnh ca this l level 0. Nhng nu code t trong movie, level hin hnh s l level 1. Bn phi ch . Gi s bn c mt movie khc bn trong movie, tc l bn c level 2. Nu bn mun t level 1 gi n level 2, bn phi dng _parent. Parent dng ging nh root, nhng khc ch, n c gi t level trn. Cn root c gi t level 0 (tc l level gc). Thun li t vic s dng root, this l bn c th gn bin cho movie clips ActionScript var whichClipToUse = "gears"; this[whichClipToUse].stop(); Thun li ca vc s dng this nhiu hn root ch , ko phi lc no mi th cng xy ra time line chnh, i khi ta ch mun n xy ra mt level nht nh. Bi vy this l cch tt nht goi level ca mt movie. Tuy nhin trong nhng trng hp n gin, hay nht l c t tn cho movies. 4) M cho movie clip

Chng ta bn v button trn, vy v c bn movie clip script cng ging button, l ActionScript onClipEvent (load) { trace("This clip has been loaded."); } onClipEvent : key word gi s kin (ging on ca button) load : s kin ny xy ra khi movie clip xut hin ln u tin trn mn hnh . N ch xy ra mt ln. Nh rng ngay c khi time line chnh b ng, movie clip nm trn time line vn tip tc chy. S kin enterFrame xy ra lin tc bn trong movie clip mi khi n mt frame mi. S kin ny s thc thi on m mt cch lin tc cho n khi n b kt thc. ActionScript onClipEvent (enterFrame) { trace("This clip has entered a new frame."); } by gi hy copy 2 on code trn vo ca s action ca timeline chnh v run .. bn s thy 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 dng ch s tip tc hin ra cho n khi bn tt movie. Gi th 07: dch chuyn v thay i movie, Moving and Changing Movie Clips Mt movie clip (MC) bao gi cng c cc thuc tnh, cho php bn xc nh v tr, phng to thu nh, quay, thm ch lm n bin mt. Chng ny cc bn s bit cch: -thay i v tr ca mc -xc inh v tr chut -lm sao quay mt mc -lm sao phng to mc -lm sao movie invisible

1) V tr ca MC: Mi th trong Flash u c v tr. V tr ny c o bng PIXEL. Gc trn cng bn tri ca mn hnh l v tr (0,0) .N l v tr giao ca hng ngang v ct dc. Nu bn s dng mt movie mc nh, th gc di bn phi s l 550,400. C nghia l 550 pixel t bn tri sang v 400 pixel t bn trn xung. nhn hnh sau r hn.

2) V tr ca Mouse: Cng nh movie, mouse cng c th xc inh c ta .. CH thut ng mouse y l ni n con tr (cursor), ch khng phi con chut bn ang cm trn tay.. ^^

C hai thuc tnh c bn ca con tr , l _xmouse v _ymouse. Vy _xmouse v _ymouse l thuc tnh ca chnh i tng m chng c gn. Nu bn s dng trn time line chnh, th chng l thuc tnh ca time line. Nu bn s dng chng trn movie clip, th n l thuc tnh ca movie clip. Nu xmous y mouse l thuc tnh ca time line chnh, n s mc nh l gc tri trn cng. Nu xmouse ymouse l thucc tnh ca 1 movie clip, n s mc nh trung tm ca MC. Hu ht cc trng hp thuc tnh lin quan n movie chnh, bn nn dng cch _root._xmouse v _root._ymouse y l mt on code v du CODE onClipEvent (enterFrame) { trace(_root._xmouse); trace(_root._ymouse); trace(""); } Khi bn chy movie, bn s thy cc cp s c in ra, chnh l ta x,y mouse .Hy dch chuyn mouse ln gc tri trn, bn s thy v tr mouse l 0.0. hoc gc phi di, ta l 550 400. Ch : khi bn a chut ra ngoi Flash window, ta chut xmouse y mouse khng thay i. Nu bn di chuyn chut tht nhanh t trung tm ca ca s ra ngoi ca s, cc gi tr c vn cho n khi bn quay tr li ca s. V vy, bn phi lun ln k hoc cn thn trc khi dng xmouse, y mouse 3) Lm movie quay Mt thuc tnh khac l thuc tnh _rotation Thuc tnh rotation chp nhn gi tr l gc . Mt vng trn chia ra 360 , min gi tr c thuc tnh rotation l -180 v 180. Bn c th s dng gi tr integer hoc floating point. Gi tr ca _rotation lun lun trong vng -180 v 180, v d 179, hoc -179. Nhng nu bn t n l 181, n s hiu thnh gc -179. vy quay mt movie, n gin l t gi tr cho n, bn cng c th s dng cc biu ton ++, += thay i gi tr . Hy xem v d sau CODE myClip._rotation = 90; myClip._rotation++; _root["myClip"]._rotation = 45; this._rotation += 0.5;

4) Co gin n hi mt MC: Bn c th lm co gin, thay i chiu di chiu rng ca movie clip Scale thuc tnh THuc tnh lm vic ny l _xscale cho chiu ngang v _yscale cho chiu dc. Cc gi tr c gn cho x,y scale l phn trm. C ngha gi tr 100 l 100 phn trm , y l thuc tnh mc inh cho mt movie clip gc. Bn c th s dng cc s nh hn nh 50 lm movie co li. Hoc c th s dng s to hn, 200 gin movie ra. Thm c th dng cc gi tr m lt movie. v d 07mousesclae.fla cha mt on m m chgn ta s gp rt nhiu sau ny. N kim tra ta ca mouse,. Sau xc inh t mouse n trung tm movie xa bao nhiu. Ri n s dng khong cch ,c chiu cao chiu rng tnh phn 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 dng 2 thuc tnh mi, _width v _height tr v chiu cao v chiu rng ca movie clip bng Pixel. CHng c lu gi trong onClipEvent (load) v khi ta cn ly li gi tr gc ca movie. Thuc tnh _width, _height S khc nhau gia scale v width,height scale s dng gi tr phn trm. Cn width height s dng pixel . Movie c th c gi tr sau: width 75, height 45, nhng scale cho c xscale and yscale l 100 phn trm. Di y l mt v d s dng width height thy 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; }

bn c th thy code ny ngn gn hn trn. bi v n ko s dng s kin onClipEvent(load) bi gi tr chiu di chiu cao ca movie gc ko cn lu tr.y l mt v d cho thy s dng width v height tin hn dng xscale ,y scale. 5) Visibility Mt thuc tnh khc ca MC l thuc tnh _visible , gi tr ca thuc tnh ny l gi tr boolean true , false. CODE myClip._visible = false; hy xem v d 07visible.fla r hn. Gi s ta khng mun movie bin mt hn, m ch b m i, ta s dng thuc tnh _alpha . Thuc tnh c gi tr t 0 n 100 CODE myClip._alpha = 50; Thuc tnh alpha l knh mu th 4, tn l alpha channel . 3 knh u tin l red ,green, blue to ra 7 mu cu vng. Khi bn nghe n ha 32 bit, c ngha l n 4 knh mu.. Cn 24 bit c ngha ch c 3 knh u tin. Nu gi tr ca _visible l 0 th movie l trong sut hon tan v c th nhn thy tt c mi th pha sau movie. Nhn hnh sau xem cng 1 movieclip nhng vi 3 gi tr alpha khc nhau, 10, 50 v 100 (t tri sang)

Gi th 08: chn, ko th movie clip, Moving and Changing Movie Clips 1. Selection

Bn bit cch hc sao to mt button v cho php ngi s dng click vo lm s kin hot ng. Tuy nhin y ta s hc cch click vo chn la mt i tng trn mn hnh. To mt chn la, c ngha l user click vo item , nhng khng c g xy ra. Nh vy, ngi dng c th la chn v thay i la chn. Chng ta s s dng la chn nh bc u tin hc ko th movie. Button bn trong mt Movie method. Mt movie khng th phn ng vi mouse click. Khng th s dng cc s kin nh on (release) hay (Press). v vy ta phi tm cch nh la n. l s dng mt button bn trong movie. Button c th x l c mouse click, v min l n c ln bao trm mt movie. Hy xem v d 08buttoninmc.fla . Ta ch nhn thy mt movie clip trn mn hnh.nhng thc cht bn trong ca movie clip l mt button. to ra kh nng select, ta phi to nhiu frame.Frame u tin cha mt button tn l offbutton. Button ny c m l

CODE on (release) { this.gotoAndStop(2); } bng this, button s gi n movie clip m n nm trn y. Frame th 2 cha nt tng t nhu frame 1 , tn l onbutton, nt ny c mu hi sng hn ngi dng nhn ra khi n c chn. CODE on (release) { this.gotoAndStop(1); } cui cng t vo frame 1 CODE stop(); By gi hy chy xem. Phng thc hitTest C cch khc lm movie c th s l mouse click m khng cn button, l s dng s kin onClipEvent(mouseDown) hoc l onClipEvent(mouseUp)v d CODE onClipEvent (mouseUp) { this.gotoAndStop(2); } Hy chy v d 08twomcs1.fla xem.Bn s thy ti sao onClipEvent(mouseUp) khc vi on (Release) . Nu bn click vo movie, c hai u phn ng.Bi v tt c movie clip nhn s kin mouse up c gi n cho chng.

Quyt inh movie no c click. C mt cch click vo movie mnh mun. l s dng v tr chut xc nh. Sa on m thnh nh sau CODE onClipEvent (mouseUp) { if (this.hitTest(_root._xmouse, _root._ymouse)) { this.gotoAndStop(2); } } vy bng cch rng buc movie clip vi mouse location , ta c th click movie ta mun. VIt m cho selection: Chng ta phi cho php User click ln movies nhiu ln v thay i trng thi ca MC t bt sang tt, hay tt sang bt. on m sau c th xc nh movie ang trng thi no v gi n n frame khc. VIc ny thc hin bng thuc tnh _currentFrame . Thuc tnh ny s c gi tr 1 kh n frame th nht, 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); } } } By gi bn thy cc cch to s chn la movie. Cch th nht tin li nu bn mun dng c cc trang thi khc nh Over,up , down.. Cch th hai th khng cn nhiu biu tng trong th vin. Enjoy.. 2) Ko mt movie clip By gi ta s hc ko mt movie. C 2 cch ko movie, cch th nht l s dng lnh . Cch ny rt d s dng nhng n khng cho bn nhiu la chn trong vic sa i v gim st movie. Cch Drag c bn: 2 cu lnh drag co bn l :startDrag v stopDrag. bn dng startDrag khi bn mun movie ca bn i theo chut, cn stopDrag khi bn mun movie ca bn khng theo chut na. y l on 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 nhn tng t nh ta lm trn. Chng s dng hitTest nhn bit movie no ang c click. V sau cu lnh startDrag v stopDrag c s dng. Khi chut c bm xung, cu lnh startDrag thc thi. V ngc li, khi chut th ra, stopDrag thc thi. Hy xem movie, bn s thy vi cc cu lnh drag, bn c th ko cc movie mt cch c lp. Nhng ch rng bn khng th ko 2 movie cng mt lc. Ch mt movie c ko ti mt thi im. V vy bn nn cn cch drag phc tp v linh ng hn lm ng dng hay game. Note: startDrag c 5 thm s. Tham s th nht l gi tr True(hoc False) quyt nh vic trung tm ca movie clip c kha vi v tr chut hay khng. Cc tham s cn li l left, top, right, bottom. Nu bn t chng, movie ca bn ch c th c ko theo cc rng buc . Ko nng cao By gi ta hc cch ko movie m ko dng cu lnh startDrag v stopDrag. Vy lm th no?? Bn cn c 4 phn m sau trong movie ca bn: Th nht l s kin onClipEvent(load), s kin ny s t cho bin global tn l dragging gi tr false. Khi bin ny true, tc l bo hiu rng movie c th c ko. Th hai, ngi dng click vo mt movie. C ngha l dragging = true . Th ba, qu trnh ko s tip tc din ra bi s kin onClipEvent(enterFrame). S kin ny ch n gin gn _x v _y (thuc tnh ca movie clip) cho _root._xmouse v _root._ymouse(thuc tnh ca con tr ). Th 4, nu ngi dng th chut , th bin dragging c gn false. Sau y l on 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 dng MC bn tri. y l MC lm theo on code trn. Ch xem trung tm movie c kha vi v tr chut nh th no. N lm movie nhy ngay lp tc nu bn click vo n. Thng thng, khi bn mun ko MC ln mn hnh, bn khng mun n nhy ti lm khp v tr chut vi trung tm ca MC. Hy ko file xung quanh mn hnh.Bn s thy khi bn click chut vo bt k im no trn movie, movie s lp tc lm khp v tr click chut vi trung tm movie. iu ny cng tng t vi cu lnh startDrag . trnh iu ny, chng ta ch cn thm mt on code nh. Khi ngi s dng bm chut, chng ta s ly offset, y l khong cch t chut cho n trung tm ca movie. Sau , thay th bng vic gn v tr chut n trung tm movie, ta se thm vo offset cho MC lun lun xut hin offset bi cng mt gi tr khi ngi dng ko. Tng tng , v d ngi dng click vo mt im cch trung tm movie 5 pixel. Sau ta lun mun khong cch 5 pixel c duy tr. iu ny lm cho ngi dng c th click vo bt c im no ko movie. y l code cho movie 2(bn 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; } }

Hy xem movie thy khc bit gia 2 on code. 3) Ko v th By gi ta bit ko movie, vy ta s th n u.? Vn l bn mun theo di hnh ng ca ngi s dng v xc inh ngi s dung t movie u. Basic Drop Zone Chc nng hitTest c th c s dng xc nh khi MC b ln nhau. Trong on m sau, chgn ta s dng lnh startDrag on m ko th n gin i, nh ta c th tp trung vo cc chc nng mi. Trong on m sau, chc nng hitTest c s dng so snh MC c ko vi mt movie khc tn l dragZone trn mt lvl(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 khng c s dng nh cc bi trc, chng ta thay th v tr _x v _y bi mt movie khc. Loi hitTest ny so snh v tr v vng c bao ph ca 2 movie clip. Trong trng hp ny, n c so snh vi _parent.dropZone. Nu c 2 movie ln nhau, hitTest tr gi tr True. xc inh xem MC no ang tn ti, hnh ch nht ca c 2 movie u c s dng. iu ny c ngha l khi bn s dng 2 hnh trng, nh trong v d, bn thn chnh cc vng trn khng c chm vo min l cc hnh ch nht ca 2 movie c dng. Hy xem hnh minh ha. Tt c cc movie Dragme u nm trn DropZone. C 2 cch s dng hitTest. Th nht l s dng ta x,y. Chng ta c th s dng movie clip nh v tr x,y, ri sau s dng dropzone nh mt movie clip th nht. CODE if (_parent.dropZone.hitTest(this._x,this._y)) {

Vi on code ny, thay th v d trn, movie clip s nm bn trong hnh ch nht ca vng dropzone. Chng ta c th thm mt bc na vi hittest. Bng cch thm tham s th 3 cho hitTest, chng ta c th dng hitTest xem hnh dng chnh xc ca movie clip v xc inh v tr x,y. Bin th 3 ny cn gn true nu bn mun hnh vi ny. Nu n false, n se hnh ng ging nh chc nng hitTest bnh thng. y l on code CODE if (_parent.dropZone.hitTest(this._x,this._y,true)) {

By gi movie ko th ca ta hat ng tt hn. Nu bn s dng v d 08drop.fla, movie bn phi s s dng on m gc, v n nm trn hnh ch nht ca dropzone. Cc movie khc s dng on code phc tp hitTest v chng c trung tm nm bn trong hnh dng gc ca dropzone. Gi th 09: Ly thng tin t ngi dng, Getting input from the user Cho ti by gi, qua 8 gi lm quen vi AS, tt c cc tc ng ca bn ln trn flash u c lm qua chut. Nhng ngoi chut, bn c th dng bn phm np thng tin vo Flash. Lm sao pht hin khi ngi dng bm phm C 3 cch pht hin khi mt phm tn bn phm b nhn. 1 l dng nt, 2 l dng i tng Key, v 3 l dng "listener" (ch c Flash MX v MX 2004) 1. Pht hin qua nt: Bn c th dng nt pht hin khi ngi dng s dng bn phm. Bn chi cn dng lnh x l s kin on cho on code ca nt . V d on code sau s kch hot khi m ngi dng nhn phm "a". ActionScript on (keyPress "a"){ trace ("Key 'a' pressed"); } Trong movie mu 09keybutton.fla c mt nt n gin nm trn mn hnh v vi v d trong . Nu bn cho chy th movie v nhn phm "a" th Output window s c vit ra dng ch "Key 'a' pressed.". X l d kin on(keyPress) nh l phi phn bit dng ch (case-sensitive) nn nu bn ch code cho n nhn phm "a" th n s khng th nhn c phm "A". May m chng ta c th dng bao nhiu b x l d kin cng c. Nu bn mun x l cc phm khc, nh cc phm mi tn, enter, thanh di (space bar) ... th bn phi dng cc code dnh ring cho chng. V d bn mun x l phm mi tn tri (left arrow key) th dng on code sau: ActionScript on (keyPress "<Left>") { trace("Left pressed."); } V sau y l cc code dnh cho cc phm c bit:

<Right> <Left> <End> <PageUp>

<Insert> <PageDown> <Down> <Up> <Delete> <Tab> <Backspace> <Escape> <Home> <Enter> <Space>

Bn c th hp nhiu d kin li chung vi nhau. V d bn c mt nt v nt c phm tt l "b". Vy khi bn nhn nt hay l nhn phm "b" th code ca nt s c kch hot. ActionScript on (keyPress "b", release) { trace("'b' pressed or button clicked."); } Cc v d trn u c trong movie mu 09keybutton.fla 2. Pht hin qua i tng phm (key object) Mc d nt rt hu ch trong vic pht hin khi ngi dng nhn phm, nhng nt li khng th pht hin c trng hp khi ngi dng nhn phm v khng nht tay. V d nu bn lm mt game bng Flash, v trong ngi chi cho th lm cho cc nhn vt trong game di chuyn lin tc nu nh h nhn phm mi tn v khng nht tay ln. Cho nhng trng hp nh vy, bn phi dng i tng Key. i tng Key l tp hp ca mt s hm (function) v hng s (constant) c xy dng sn trong Flash. Bn c th dng cc hm v hng s ny bit c cc phm ang b nhn hay khng. V d, nu mun kim tra coi phm mi tn tri c b ang nhn hay khng th dng on code sau: ActionScript if (Key.isDown(Key.LEFT)) { trace("The left arrow is down"); } Hm Key.isDown s cho ra kt qu ng hay sai ph thuc vo thng s c phi l phm ang b nhn hay khng. Hng s Key.LEFT tng trng cho phm mi tn tri. vy khi mi tn tri b nhn th output window s cho ra hng ch "The left arrow is down". Di y l cc hng s tng t nh Key.LEFT cp trn

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 bn mun kim tra xem nu nhng phm bnh thng ang b nhn th bn phi dng Key.getCode ly m s ca phm dng trong hm Key.isDown. y l code mu khi bn mun kim tra phm "a" ActionScript if (Key.isDown(Key.getCode("a")) { trace("The left arrow is down"); } Cho 2 v d trn, bn c th coi source Fla 09keyobject.fla 3. Key Listener Key listener c dng quan st bn phm v thng bo cho Flash khi phm c nhn. cch th 2 chng ta dng i tng Key kim tra coi phm c b nhn hay khng, nhng n khng th bit chnh xc lc no th phm b nhn. Nu m ngi dng nhn phm qu nhanh, trc khi onClipEvent(enterFrame) kp kch hot i tng key kim tra th Flash s khng bao gi bit c ngi dng nhn phm. Mt bt tin na khi dng cch th 2 l nu bn mun ngi dng nhn phm nhiu ln th i tng Key s khng phn bit c l 1 ln nhn di hay l nhiu ci nhn tht nhanh. V vy Flash MX, MM cho chng ta thm mt la chn na l Key listeners. bn c th dng "listener" (c th hiu n nh mt quan st vin) theo di s kin ca bn phm v thng bo cho Flash ngay khi phm c nhn. Listener c 2 phn. Phn u l phn to listener. Bn phi ra lnh cho listener ny ch vo s kin ca bn phm. y l code cho to listener ActionScript Key.addListener(_root);

Lnh Key.addlistner to listener cho i tng trong thng s l _root. V i tng ny s c thng bo v s kin ca bn phm. Trong on code trn, _root l i tng c thng bo v s kin ca bn phm. Nhng khi nhn c thng bo th _root phi lm g? V vy chng ta cn phi vit code x l s kin cho _root. V d on code sau s c thc hin khi _root nhn c thng bo v s kin bn phm. ActionScript _root.onKeyUp = function() { trace(Key.getAscii()); } Khi ngi dng nhn phm, ri nht tay ln th s to ra s kin onKeyUP, v s kin ny c thng bo ti _root (bn c th thay th _root bng bt k i tng no) v sau th hm Key.getAscii() s cho ra kt qu l m s ASCII tng ng vi phm va c nhn, v d A = 65, B = 66 .v.v Bn c th xem ci fla mu 09keylistener.fla, trogn c on code trn (lu l trong fla ny s khng c g ht ngoi on code AS frame u tin) Nu bn mun bit phm c nht l g thay v ASCII code th bn c th dng String.fromCharCode() cho ra kt qu bn mun tm. Thay dng trace(Key.getAscii()); bng trace(String.fromCharCode(Key.getAscii())); Tht ra ngoi 3 cch trn, cn mt cch na l dng b x l s kin onClipEven ca movie clip theo di s kin keyDown, keyUp, nhng cch ny khng cn c dng trong Flash MX na, v vy bn ch c th cch ny trong cc Flash trc MX thi. Bi Tp: Dng phm di chuyn movie clip 1. To mt file Flash mi 2. To mt movie clip n gin 3. Gn on code ny vo 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] on code trn kim tra 4 phm mi tn v di chuyn movie clip theo hng ca mi tn. Bn hy th movie coi sao 4. Thay i on code trn cho hon chnh hn: to 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. Mi frame ca movie, mnh s kim tra 4 phm mi tn v iu chnh gi tr ca 2

bin [b]x,y[/b] ch khng iu chnh v tr ca movie clip, sau phi hp vi bin [b]speed[/b] tm v tr mi cho movie clip, ri 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; } on code trn c 2 li im. Th nht, chng ta tm v tr mi ca movie clip trc khi chng ta di chuyn movie clip ti , v nh vy chng ta c th kim tra v tr mi c hp l khng (o dng rt nhiu trong game), v th hai l rt tin cho chng ta thay i tc di chuyn ca movie clip, ch cn thay i gi tr ca bin speed Nhp vn bn Trong Flash, ngi dng c th nhp vn bn vo cc khung, v bn c th dng AS ly nhng vn bn . cho ngi dng c th nhp vn bn, bn phi to khung input text v to cho 1 varible tng ng vi ga tr trong khung input text . (nu bn no cha bit to input text th c th download 3 ci CD hng dn bn box ti liu tham kho thm) Cc chc nng v thao tc lm vic vi chui k t (string Chng ta c rt nhiu thao tc vi chui k t: 1. Ghp 2 chui li vi nhau: dng k hiu +. V d bn c variable tn l myVariable c gi tr l "Hello", v mun ghp ch "world" vo sau th dng nh sau: myVariable = myVariable + "world" v kt qu c c s l "Hello world". Bn cng c th ghp nhiu hn 2 chui li vi nhau bng cch trn. 2. Substrings. Substring l mt chui k t nh trong 1 chui k t khc. V d "ell"

l substring ca "hello world" hay l "hello" hay l "elle" hay "hell". Bn c th ly bt c substring no ca 1 string vi c php sau: String.substring(start, end));. String l i tng chui m bn mun trch ra mt phn, start l s th t ca k t bt u cho chui bn mun ly, v end l s th t bt u cho phn bn khng mun ly. Lu rng k t u ti s c s th t l 0. V d vi on code sau, output window s cho ra hng ch "lo W" ActionScript var myString = "Hello World."; trace(myString.substring(3,7)); Ngoi ra cn 1 cch na dng tng t nh cch trn nhng ch khc v thng s v c c php nh sau: String.substr(start, length);. thng s 1 cho s th t ca ch ci u tin v th hai cho chiu di ca chui. on code sau cng s c kt qu tng t nh cch 1 ActionScript var myString = "Hello World."; trace(myString.charAt(6)); Cc hm ca i tng String Sau y l mt s hm tiu biu ca i tng String. 1. indexOf: dng tm s th t ca mt k t hay mt chui nh trong i tng String. Nu hm indexOf tm khng thy k t hay chui nh th s cho ra kt qu -1. y l c php:myString.indexOf(substring,start)); substring l k t hay chui mnh mun tm, start l s th t mnh bt u tm 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 chng ta tm k t cui cng i ngc ln tik t u tin. ActionScript var myString = "Hello World."; //output: 2 trace(myString.indexOf("l",0)); //output: 9 trace(myString.lastIndexOf("l"));

3. toUpperCase/toLowerCase: dng i chui t vit thng sang vit hoa v ngc li ActionScript var myString = "Hello World."; //output: HELLO WORLD trace(myString.toUpperCase()); //output: hello world trace(myString.toLowerCase()); 4. length: l c tnh ca Sring dng tnh chiu di ca chui. ActionScript var myString = "Hello World."; //output: 12 trace(myString.length); Bi tp: 1. m file 09form-noscripts.fla 2. kim tra tn ca variable ca mi input text field qua property panel 3. Thm on m sau vo nt CLEAR ActionScript on (release) { clearForm(); } 4. thm on m sau vo nt SUBMIT ActionScript on (release) { submitForm(); } 5. Thm on code sau vo frame u tin 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); } }

Ri bn test movie. Gi th 10: To V iu Khin Vn Bn, Creating and Controlling Text Dynamic Text Bn cng c th hin th vn bn bng dynamic text field. Khc vi Input field m bn lm quen trong gi s 9, dynamic text field ch cho php AS thay i ni dung vn bn ch khng phi l ngi dng. V ni dung, hnh thc ca vn bn c th thay i bt c lc no nn mi gi l dynamic text Trc tin bn to dynamic text bng dng c text trn thanh toolbar, nhng thay v chn "Input Text" trong property panel, bn chn "Dynamic Text" Bc k tip l ni ni dung ca vn bn trong dynamic text field vi mt variable bng cch vit tn ca variable vo trong khung Var trong propery panel. V d nh bn t variable myText vo trong khung Var th khi bn thay i gi tr ca myText th vn bn trong dynamic text field cng thay i ging nh gi tr ca bin myText. Ngoi ra bn cn c th thay i mt s la chn cho dynamic text field nh "Single", "Multiline", or "Multiline No Wrap" x l trng hp ni dung ca vn bn qu di v cnn nhiu la chn khc na. (Nu bn cha nm vng phn ny th c th tham kho thm v s dng Flash trong CD c post box ti liu) nh dng vn bn theo HTML (HTML format) nh dng vn bn kiu HTML, bn phi cho php dynamic text field chp nhn nh dng HTML (click vo HTML icon trn property panel) v sau bn c th dng th HTML nh dng vn bn ca bn. V d on code ny s to vn bn sau: CODE myText = "This text is <B>bold</B>.<BR>"; myText += "This text is <I>italic</I>.<BR>"; myText += "This text is <U>underlined</U>.<BR>"; myText += "This text is <FONT COLOR='#FF0000'>red</FONT>.<BR>"; myText += "This text is <FONT FACE='Arial Black'>Arial Black</FONT>.<BR>";

myText += "This text is <FONT SIZE='24'>large</FONT>.<BR>"; myText += "This text is <A HREF='link.html'>linked</A>.<BR>";

QUOTE This text is <B>bold</B>.<br> This text is <I>italic</I>.<br> This text is <U>underlined</U>.<br> This text is <FONT COLOR='#FF0000'>red</FONT>.<br> This text is <FONT FACE='Arial Black'>Arial Black</FONT>.<br> This text is <FONT SIZE='24'>large</FONT>.<br> This text is linked. Siu lin kt (hyper link) trn c tc dng ging nh trong HTML nh khc 1 iu l khng c gch di Sau y l nhng th HTML c th dng trong Flash MX

<B></B>: vit m <I></I>: vit nghing <U></U>: gch di <FONT FACE='Arial Black'></FONT>: kiu ch <FONT SIZE='24'></FONT>: c ch <FONT COLOR='#XXXXXX></FONT>: mu ch <A HREF=''></A>: link <P></P>: an vn <BR>: Xung hng

i Tng TextFormat Cn mt cch khc nh dng cho vn bn l dng i tng TextFormat. lm c iu ny, bn cn phi to ra 1 bin t i tng TextFormat. Sau bn c th nh gi tr cho cc thuc tnh ca n. V d bn mun kiu ch Arial Black, c 26, v mu th dng an code sau: CODE myFormat = new TextFormat(); myFormat.font = "Arial Black"; myFormat.size = 36; myFormat.color = 0xFF0000; textInstance.setTextFormat(myFormat); Bn c th dng i tng TextFormat nh l stylesheet trong cc file HTML, mt khi bn to n ra th bn c th dng n bt c ch no trong movie Bn c th coi cc an code trn trong file mu: 10formattext.fla Variable ngoi Flash Bn c th ly bin t ngoi trang HTML vo trong Flash thay i ni dung ca Flash hay dng vo bt c chuyn g. V d bn phi lm 30 ci banner bng Flash cho 30 trang web, th bn c th ch lm 1 ci banner thi, nhng thay i ni dung

tu theo tng trang web. Mun nhp vn bn hay gi tr ca bin no t HTML, bn ch cn thm vi ch vo sau ci tn ca movie trong phn <object> v <embed> trong HTML.. on m HTML sau y nhp gi tr ca bin txtName vo trong Flash HTML <PARAM NAME=movie VALUE="10banner.swf?txtName=Dominico Savio!"> v trong th <embed> th bn thm phn variable v gi tr vo sau tn file HTML src="10banner.swf?txtName=Dominico Savio!"> Khi movie load th n s t to variable "txtname" v t gi tr cho bin ny bng "Dominico Savio". Bn c th xem trang 10banner.html, 10banner.fla trong ci source file xem chi tit hn. Bn c th lm nhiu gi tr mt lc cng bng cch ny 10banner.swf?txtName=Dominico Savio!&gender=male" Ngoi ly bin t HTML, bn cn c th ly bin t cc text file. Cch ny thch hp khi bn c nhiu bin nhp vo Flash, hay gi tr ca cc bin qu di gn vo th HTML. Bn ch cn dng lnh loadVariables() lm c iu ny. V d: CODE loadVariables("10external.txt", _root); Bn c th coi thm v cch dng loadVariables() bn box ActionScript [Bi Tp Mt v d n gin p dng cc iu m bn va hc trong bi ny l lm mt ci "news ticker" nh di y: Dng ch s chy t bn phi qua bn tri cho sut bn tin. Bn c th tham kho source fla: 10ticker.fla v test n c khi nim thm v "news ticker" 1. To movie mi 2. To dynamic text field, vi cao ch va 1 hng, v di bng chiu ngang ca stage, cho d nhn, bn c th vit vi ch trong , nh l "text goes here" 3. To variable cho text field ny l text 4. Chn font, nn dng kiu ch tng t nh Courier New, sao cho b ngang ca mi ch bng nhau 5. Con text field ri nhn F8 i thnh Movie Clip, v t cho n 1 ci tn nh th no tu bn 6. Sau th gn on script sau vo 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 ci u tin lineLength = 50; // s ch ci ti a trn news ticker // thm cc khong trng vo trc dng tin for(var i=0;i<lineLength;i++) { tickerText = " " + tickerText; } } onClipEvent(enterFrame) { // pht bn tin text = tickerText.substr(firstChar,lineLength); // thm ch ci k tip firstChar++; // pht li bn tin sau mi ln kt thc if (firstChar > tickerText.length) { firstChar = 0; } } Trc tin bn to ra bin tickerText cha bn vn news ticker, bin firstChar cha gi tr ca ch ci u tin s thy trong news ticker, v lineLenght l s ch ci c th xut hin mt lc trn news ticker. V tt c cc u c cho vo trong b s l d kin onLoad Trong onEnterFrame, Flash s ly 50 ch ci u tin b vo bin text ( trong dynamic text field) cho n hin th ln mn hnh. Sau di chuyn sang ch ci th 2 bng cu firstChar++;, v sau cng l kim tra, nu bn tin c pht ht th pht li t u. 6. Bn c th thay i gi tr ca lineLenght v gi tr ca bn vn trong tickerText hiu hn v 2 bin ny 7. By gi bn hy th dng loadVariable() nhp bn tin t text file vo coi c c khng. Nu khng th hy tr li y hi mnh nhe Happy flashing Gi th 11: Lm vic vi cc con s, Chng ny rt hay v b ch! Chng ta nghin cu v text v strings trong cc chng trc. By gi chng ta s nghin cu v nhng con s. Bn s phi ng vi nhng con s trong Action Script trong nhiu trng hp, v vy bn cn phi hiu lm sao s dng chng. Nhng php ton (operator) v nhng hm (function) v s Nhng php ton n gin Chng ta cng hc qua cc php ton n gin ri. By gi hy xem li nh. Du + v du - s thc hin php ton cng v tr, du * thc hin php nhn, du / thc hin php chia. Ngoi ra, bn cng c th s dng nhng php ton nh +=, -=, *=, /= lm n gin cho code ca bn. Ly v d hai cu lnh di y s thc hin cng mt cng

vic l cng thm 7 v bin a CODE a = a + 7; a += 7; Nhng php so snh Nhng php ton so snh nh == so snh hai s xem c bng nhau khng, > (ln hn), < (nh hn), <= (nh hn hoc bng), >= (ln hn hoc bng). Trong Action Script chng ta c th so snh mt s nguyn vi mt s thc. V d nh 7.2 s ln hn 7. Math.abs i tng Math cha mt tp hp cc hm x l cc con s. Hm Math.abs s tr v gi tr tuyt i ca mt s. Bn hy th on code ny xem kt qu th no nh: CODE trace(Math.abs(-7));

Math.round Nu bn c mt s thc, nhng bn li mun hin th cho ngi dng xem di dng s nguyn thay v phi cho h xem cc con s phn thp phn, bn hy s dng hm Math.round. Th nh: CODE trace(Math.round(7.2));

Math.ceil, Math.floor Hai hm khc dng lm trn s thc thnh s nguyn l Math.ceil v Math.floor. Hm Math.ceil s lm trn s ln v Math.floor s lm trn s xung. Th nh: CODE trace(Math.ceil(7.2)); trace(Math.floor(8.3));

Math.min, Math.max Cc bn c th s dng hai hm ny tm s ln hn v s nh hn trong hai s. V d hm Math.min(4, 5); s tr v 4, Min.math(4, 5); s tr v 5 Math.pow y l hm ly ly tha, cng n gin thi, tham s th nht l c s, tham s th hai l ly tha. V d bn mun ly 4 lu tha 3 th vit th ny

CODE Math.pow(4, 3); Math.sqrty l hm tnh cn, nhng m mnh xin ni trc lun l ngoi hm Math.sqrt, bn cn c th s dng hm Math.pow vi ly tha nh hn 1 tnh cn. V d mun ly cn 2 ca 4 th c th s dng CODE Math.pow(4, .5); hoc Math.sqrt(4); C hai cch trn u ra cng mt kt qu l 2. Hm s lng gic Nhng hm ca object class m cc bn c bit trn c v nh rt d hc. Nhng cn nhng hm v lng gic nh sin, cosin th kh nut hn nhiu. Mc d bn c th b qua nhng hm ny nhng nhng hm lng gic ny rt hu ch v hay trong vic to nhng ng dng trong Flash. Vy chng ta hy cng tm hiu cch n lm vic nh! Hm sin v cosin s dng qua Math.sin v Math.cosin, biu din mi quan h gia ng thng vi ng cong ca mt ng trn. Hnh di y biu din mt vng trn vi mt s im c nh du bng cc ch. Hy tng tng tm ca vng trn to 0,0; bn knh ca ng trn bng 1. V th, im trn cng s c to 0,1 v im tn cng bn phi s c to 1,0

By gi bn hy tng tng vng trn trn l mt ng thng. Bt u t im a

c to 1,0 n im 0,-1 qua -1,0 ri qua 0,1 v cui cng tr v 1,0. Trong Flash, v cng nh trong cc ngn ng lp trnh khc, chng ta nh v mt vt bt k bng to x, y ca chng. V th, vic chuyn mt im trn ng thng thnh mt im c to x, y trn ng trn rt hu dng. l nhng g m hm sin v cosin thc hin. V d nh chng ta t im a l im bt u ca ng thng ca ng trn, bn c s dng hm sin v cosin ca 0 tnh to x, y ca im a trn ng trn. Tt nhin, 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 nm u trn ng trn? Nu dui ng trn ra s c di bng 6.28 ln bn knh, do bn knh bng 1 nn di s bng 6.28. y l xut x ca hng s pi. Pi bng 3.14, bng mt na di ca ng trn. di ca ng trn l 6.28 th mt phn t di ng trn l 1.57. im tng ng vi im c. Hm Math.cos(1.57) s tr v mt gi tr rt nh, gn bng 0. Hm Math.sin(1.57) s tr v gi tr gn bng -1. Ch gn bng ch khng bng v hng s pi khng chnh xc bng 3.14, ch l gn bng thi. Bn c th s dng cch ny chuyn cc im trn ng trn thnh im c to x,y Vy th n c ch nh th no? Gi s nh bn mun to mt movieclip bay quanh mn hnh trong mt vng trn. Lm sao lm c iu ? Nu lm bng frame c th phi tn hng trm frame . Hoc cch khc l c th dng hm Math.cos v Math.sin tnh chuyn sang to x,y quanh vng trn. Trong on code di y, khi cng thm n, movie clip s chuyn ng dc theo ng trn. Hm Math.cos s tnh ra gi tr x v hm Math.sin s tnh ra gi tr y, chng s c nhn thm vi gi tr ca radius tng kch thc ca ng trn. Gi tr ca centerX v centerY s c cng thm cho cc to x, y, v th tm ng trn by gi khng cn 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 rt nhiu cch chuyn i t chui sang s v ngc li. V d nh trng hp ngi dng nhp mt s vo text field, bn s nhn gi tr v cng thm mt. Hy xem on 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 khng? Xin tr li l sai, kt qu b l 421, n gin bi v num l mt chui (string) ch khng phi l mt s, v th khi chng ta thc hin php cng num vi 1 c ngha l cng k t 1 vo chui num ang c gi tr 42. lm cho Flash hiu num l mt s, bn c th s dng mt trong hai hm sau y chuyn mt chui thnh s. Hm parseInt chuyn mt chui thnh kiu s nguyn, hm parseFloat chuyn mt chui thnh kiu s thc. V d hm parseInt(42) s tr v gi tr l 42, nu chng ta s dng parseInt(42.9) th cng s nhn c gi tr l 42 bi v hm parseInt khng lm trn s, n ch ly phn nguyn m thi. Cn nu s dng hm parseFloat(42.9) bn s nhn c gi tr l 42.9, mun lm trn cc bn c th s dng hm Math.round(parseFloat(42.9)). Hm parseFloat cng s tr v mt mt s nguyn nu tham s truyn vo l mt chui s nguyn. V d parseFloat(42) s cho ta s 42. Tr trng hp bn mun tr v mt gi tr s nguyn, cn khng bn nn s dng hm parseFloat. Mt nt rt c bit v rt hay ca hm parseInt l c th chuyn mt chui thnh mt s nhng thnh nhiu dng h s khc nhau. Hy xem mt v d cho d hiu: CODE parseInt(FF, 16); Hm ny s tr v gi tr l 255, ngha ca n l chuyn chui cha s FF l mt s hexa h s 16 thnh mt s h nguyn h s 10. Ngc li, chuyn t mt s sang mt chui, hy s dng hm toString. Hm ny s hot ng khc vi hm parse, bi v n hot ng bn trong mi bin, gi hm ny sau du chm (.). Xem v d nh: CODE a = 135; trace(a.toString() + 1); Kt qu s l 1351. Chng ta cng c th s dng hm toString chuyn mt s thnh mt chui cha s di mt h s khc. V d a.toString(16) s tr v kt qu l chui ff S ngu nhin To s ngu nhin l mt phn quan trng trong cng vic thit k game v mt s hot hnh. Bi v nu khng c s ngu nhin th nhng on phim ca bn s chy ging nhau, khng cn g th v na! to s ngu nhin, bn c th s dng hm Math.random(). Hm ny s tr v mt gi tr t 0.0 n 1.0 nhng thng th khng tr v gi tr bng 1.0 Hy xem v d di y, bn s nhn c con s ngu nhin trong ca s OutPut CODE

trace(Math.random()); Kt qu tr v i loi ging nh 0.023268056102097, nhng mi ln li khc nhau. Mt v d khc l bn cn to mt s ngu nhin t 1 n 10, vic ny rt n gin, ch cn nhn thm s ngu nhin cho 10. on code sau s cho ta con s ngu nhin t 0.0 n 10.0 CODE trace(Math.random() * 10); Nhng ci chng ta cn l con s ngu nhin t 1.0 n 10.0 ch khng phi t 0.0 n 10.0, v th, hy cng thm 1 CODE trace(Math.random() * 10 + 1); By gi th kt qu tr v l 1.0 n 11.0 nhng s khng c kt qu 11.0. Hy s dng hm Math.floor lm trn xung. CODE trace(Math.floor(Math.random() * 10 + 1)); Tht ra th con s ngu nhin trong my tnh cng cha tht s ngu nhin. Bi v n khng tht s thay i trong b vi x l. Thay vo s c mt con s chun, mt con s no khng bit trc c nh l gi hoc pht ca h thng, con s ny s c a v mt biu thc rt phc tp, rt rt phc tp m chng ta khng th on c. Kt qu tr v cho chng ta kt qu dng nh l ngu nhin. Kt qu ny s c a v mt hm tnh mt ln na l lu li thnh con s chun tnh ngu nhin cho ln tip theo. Hy ngh v iu ny, s ngu nhin trong i sng tht s cng khng tht s ngu nhin. Nu chng ta gi mt mt ca con xc xc, thy ng theo mt hng tht chnh xc, chng ta s c cng mt kt qu c ri, by gi hy th to mt s ngu nhin t 3 n 7. Lm th no y? Ah, c mt th thut cho bn y: CODE trace(Math.floor(Math.random() * 5 + 3); Trong phm vi t 3 n 7 s c tt c l 5 s nguyn 3, 4, 5, 6, v 7. Th cn trong phm vi t 50 n 100 th sao CODE trace(Math.floor(Math.random() * 51 + 50);

L s 51 bi v trong phm vi t 50 n 100 c 51 s, cn nu t 51 n 100 s l CODE trace(Math.floor(Math.random() * 50 + 50); Mt cch th xem phm vi ca bn c ng nh ca mnh khng, l hy th vi s nh nht v s ln nht thay cho Math.random(). Gi tr nh nht ca hm Math.random() l 0, hy th vi s 0 nh CODE trace(0 * 51 + 50); Gi tr ln nht ca Math.random() s khng chnh xc bng 1.0 m s l gn bng, vy chng ta hy th vi gi tr l 0.9999 CODE trace(.9999 * 51 + 50); Hy th xem c ng khng nh! Di y l mt v d na rt th v, movie clip ca bn s nhy n nhng v tr bt k CODE onClipEvent(enterFrame) { this._x = Math.random()*550; this._y = Math.random()*400; }

Luyn tp: To mt chng trnh my tnh n gin Hy bt tay vo vic thit k mt chng trnh my tnh n gin nh. - M mt movie mi trong Flash. Movie ca chng ta s ging nh hnh di y Chng ta s c 10 nt nhp 10 s t 0 n 9, cc nt cc php ton, phm =, du chm thp phn, phm C xa mn hnh. Mt text field t trn hin th nhng s ngi dng bm, text field ny s lin kt vi bin display. - Trong mi movie clip ca mi nt bm, chn on code sau CODE on (release) { _parent.keyPressed(this._name); }

Khi mt nt bt k c nhn th hm keyPressed s c gi level ngoi m y s l level root. Hm ny s truyn tn ca movie clip. - Quay tr li level root, mi movie clip phi c mt tn ring, khng c trng. t tn ca movie clip theo s ca n, v d nt s 5 s c tn l 5, du chm thp phn c tn l .. Du cng, du tr, du nhn, du chia, du bng, nt C ln lt t tn l plus, minus, multiply, divide, equals, clear. - Ok, by gi bt u vit code nh! Code ny s nm ngoi movie frame CODE // trc tin, xo mn hnh c clearAll(); function clearAll() { display = "0"; // gi tr mc nh l 0 memory = 0; // b nh operation = "none"; // cha c php ton no c newNum = true; // nh du khi no nhp xong mt s } Bin display l mt chui (string), s lin kt vi text field hin th ni dung ngi dng bm. N s bt u vi gi tr bng 0, c ngha l khi ngi dng mi bt my ln th s mc nh l s 0 Bin memory lu li con s trc thc hin php tnh. iu ny rt cn thit, v d bn bm s 5, +, 7 th s 5 nhp vo, khi bn bm du cng, mn hnh s c xa v s 5 c lu vo memory, s 7 c nhp tip v s thc hin php tnh 5 v 7. Php ton ngi dng chn cng cn c lu vo b nh. Khi ngi dng nhn 5, +, 7 ri, sau bm du = hoc mt php ton khc th chng trnh s gi li php ton c c lu trong bin operation thc hin php ton trc ca 5 vi 7. Bin newNum nh l mt bin c hiu bo cho chng trnh bit khi no s kt thc mt php ton. V d khi ngi dng bm 5, +, 7 ri sau bm mt php ton khc th kt qu s c lu li tnh ton tip, lc ny php ton cha kt thc, newNum = false. Cn nu ngi dng bm du = th mn hnh s hin ra kt qu v kt thc lun php ton chuyn sang php ton mi, newNum = true. - Phn tip theo l hm keyPressed x l khi mi nt c nhn. Hm keyPressed s s dng cu trc switch thay cho cu trc if, then, else. C hai cch u hot ng tng t nhng cch vit hi khc, bn hy xem nh: CODE // hm ny c gi bi nt nhn function keyPressed(keyName) { // do something different for different keys switch (keyName) { case "clear" : // khi nhn nt C clearAll(); break; case "plus" : // cc php ton cng, tr, nhn, 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 : // cc s if (newNum) { // hin th s mi trn mn hnh display = keyName; newNum = false; if (display == "0") newNum = true; // s khng bt u vi s 0 } else { display += keyName; // ni thm s vo mn hnh } break; } } Khi ngi dng nhn nt C th hm clearAll() s c gi, tng t khi ngi dng nhn cc php ton th hm operate s c gi - Hm operate s thc hin tnh ton. N s tm ra php ton gia con s trc v con s hin thi, s dng hm parseFloat chuyn chui thnh s.Operation c gi tr bng none khi nhp mt s mi sau khi thc hi n xong php ton v mn hnh c xa. CODE // thc hin php ton trc function operate(keyName) { switch (operation) { case "none" : // s u tin memory = parseFloat(display); // lu li s trc break; case "plus" : // thc hin php ton 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: Lm nhng hnh tinh bay quanh qu o Trong v d v lng gic trong phn trc, bn bit cch lm mt movie clip quanh quay mt vng trn. By gi hy p dng nhng kin thc lm mt movie 4 hnh tinh xoay quang mt tri, hnh tinh th 3 s c mt v tinh. - To mt movie mi trong Flash To 6 movie clip l cc vng trn, t tn ln lt l sun, mercury, venus, earth, mars, and moon, v t instance name ca chng ging vy lun. Hy lm cho kch thc ca chng ta khc nhau mt cht nh! - t movie clip sun (mt tri) vo gia mn hnh. Cc hnh tinh khc s quay quanh mt tri. V tr ca cc movie clip cc hnh tinh khc khng quan trng, v chng ta s iu khin v tr ca chng bng Action Script - t on code sau vo movie clip mercurcy: CODE onClipEvent(load) { speed = .4; radius = 40; orbit = 0; } onClipEvent(enterFrame) { orbit += speed; this._x = Math.cos(orbit) * radius + _root.sun._x; this._y = Math.sin(orbit) * radius + _root.sun._y; } Trong event load s thit lp tc quay ca hnh tinh, khong cch gia hnh tinh vi mt tri. Bin speed iu khin tc quay ca hnh tinh, c ngha l s vng quay trong mt frame. Nu speed = 6.28 th hnh tinh s quay c mt vng trong

ng mt frame, v nu speed = .4 nh trong on code sau th hnh tinh s quay mt vng qu o mt 15.7 frame (6.28/.4). Trong mi ln event enterFrame xy ra th orbit (qu o) s c cng thm vi speed hin thi, v hnh tinh di chuyn n v tr mi. To x, y ca cc hnh tinh s c hiu chnh theo v tr ca mt tri, v vy tm qu o ca cc hnh tinh chnh l mt tri. - Chy th movie. Lc ny, cc hnh tinh vn ng yn, ch c mercurcy l di chuyn. Nu qu o b nghing th bn phi xem li xem mt tri c nm ng gia qu o hay khng. - t on code tng t vo cc movie clip venus, earth, and mars movie clips, nhng m bn hy thay i gi tr ca hai bin speed v radius lm cho hnh tinh xa hoc gn mt tri hn. Gi cho cc bn nh, speed ca cc hnh tinh mercury, venus, earth, and mars l .4, .2, .1, v .05, radius cho cc hnh tinh l 40, 90, 150, v 210. - Chy th li movie. By gi th c bn hnh tinh chuyn ng, ch cn moon l cha chuyn ng v cha c vit code iu khin. - By gi hy vit code cho moon, moon s c speed nhanh hn v radius nh hn, v moon s quay quanh earth thay v quay quanh sun CODE onClipEvent(load) { speed = .5; radius = 15; orbit = 0; } onClipEvent(enterFrame) { orbit += speed; this._x = Math.cos(orbit) * radius + _root.earth._x; this._y = Math.sin(orbit) * radius + _root.earth._y; } - By gi hy chy th movie ca bn mt ln na. By gi tt c cc hnh tinh u quay ri, nhng cn mt vn . Earth khng chnh xc nm gia qu o ca moon, v sao th? Bi v moon s quay trc earth, v moon nm mt layer trn layer ca earth. Chng ta cn phi lm cho earth quay trc ri mi n moon. lm nh vy, chn movie clip moon, ri chn Modify -> Arrange -> Send to Back. Luyn tp: Lm tuyt ri y l mt v d rt hu ch cho vic to s ngu nhin. Bn c th khng cn phi dng Action Script nhng lc bn phi lm hng trm movie clip bng tuyt, mi ci chuyn ng theo mt ng. Bng cch s dng Action Script v s ngu nhin, bn c th lm cho cc bng tuyt ri vi tc v hng ri ngu nhin. Bt tay vo lm nh! - To mt movie mi trong Flash - To mt movie clip mi, t tn l Snowflake v t tn instance ca n l snowflake - t on code sau vo movie clip Snowflake. on code ny s khi to nhng gi

tr ban u nh v tr ca cc bng tuyt, tc ri, tc b thi ngang, xoay ca bng tuyt. CODE onClipEvent(load) { this._x = Math.random()*550; // 0 to 550 this._y = Math.random()*400; // 0 to 400 speed = Math.random()*3+3; // 3 to 6 drift = Math.random()*2-1; // -1 to 1 rotate = Math.random()*6-3; // -3 to 3 } onClipEvent(enterFrame) { this._y += speed; this._x += drift; this._rotation += rotate; // a nhng bng tuyt ln u if (this._y > 400) this._y = 0; // kim tra hai bin if (this._x < 0) this._x = 550; if (this._x > 550) this._x = 0; } Khi event enterFrame xy ra th bng tuyt s c iu khin ri xung bi speed v b dt theo hng ngang bi drift. Bng tuyt cng s b xoay theo gi tr ca rotate. Tip theo l s kim tra xem nu bng tuyt ri xung t ri th s cho n ri li, nu bng tuyt b dt qua bn phi th n s c a quay li v bn tri - Chy th movie ca bn. Cc bng tuyt s ri t do. Hy click vo cui movie xem sao, nhng bng tuyt di s c ri li. - c ri, by gi hy lm cho bng tuyt nhiu nhiu mt t bng on code sau, t vo timeline chnh nh! CODE // to 50 bng tuyt for(var i=0;i<50;i++) { snowflake.duplicateMovieClip("snowflake"+i,i); } Hm duplicateMovieClip hot ng cng ging nh hm attachMovie a movie clip vo trong lc ang chy. im khc bit l hm duplicateMovieClip s chn t mt Movie clip c sn, s dng li tt c hnh nh v code, nhng bn phi chc chn rng mi movie clip phi c mt tn ring v mt level ring

Gi th 12: i tng v Mng, Objects and Arrays Cho n by gi, mi bin u cha d liu ring l, mi bin cha mt d liu. i vi nhng chng trnh nh v n gin th khng c g ni, nhng n khi bn cn s dng tht nhiu bin. Cng c nhng lc bn gp kh khn khi nhn ra rng bn cn lu rt rt nhiu d liu, nhng bin bnh thng mun lm th khng phi d . ActionScript cung cp cho ta hai th lu nhng loi nhiu d liu. Mt l Custom Object (i tng), vi Custom Object bn c th nhm nhng d liu ring l li vi nhau. Cch khc l Array (Mng), mt trong nhng phn c bn ca cc ngn ng lp trnh cao cp. Trong gi th 12 ny, chng ta s hc: - Cch to Custom Object - Cch s dng nhng i tng ActionScript c dng sn - Tm hiu v Array (Mng) - Lm ch chuyn ng - To nhng vt th chy theo con tr chut trn mn hnh To Custom Object Chc hn cc bn quen thuc vi nhng tn nh x v y iu khin v tr trn movie clip. C bao gi bn cm thy nhm chn vi nhng ch x, y hay mun thay th n bng nhng ch khc nh positionX, positionY hay bt c g bn thch khng? Vic qu n gin, ch cn to bin ca bn ri gn gi tr cho bin ca bn thi . Nhng d sao th cng ch l nhng bin ring l thi, ch vi mt ci tn khc . Trong phn ny, chng ti khng mun ch cho cc bn lm nhng iu nh vy m s ni v cch to mt custom variable Object. V d, bn c th lu bin x, y nh sau:

CODE pos = {x:10, y:20};

Bng cch s dng hai du ngoc nhn, bn to ra mt object. Bn c th truy cp d liu bng cch: CODE trace(pos.x);

Bn c th s dng n nh bt c nhng bin no khc. Hy tng tng n mt cu trc phc tp hn nhiu nh mt record trong mt c s d liu. V d nh ta c mt custom object tn record, v trong n s c nhng property nh l name, address, phone Bn c th to object tng bc mt, to thm property. Xem v d ny nh: CODE record = new Object(); record.name = "Gary"; record.age = 32; record.state = "Colorado"; trace(record.name);

Cng vi mc ch lm cho d liu d t chc hn, custom object cng ging nh nhng i tng dng sn. Hai v d v nhng i tng dng sn l Color v i tng Date. i tng Color C th dng ActionScript i mu ca mt movie clip bng cch s dng cu lnh setRGB. l cch d nht nhng n s khng thc hin c i vi instance ca movie clip. Thay vo , chng ta s chuyn n i tng Color ca movie clip. Thc hin cch bng hm new Color(), sau th c th s dng cu lnh setRGB thay i mu. Di y l mt v d, s dng setRGB t i tng Color ca movie clip t li mu cho movie clip sang mu 0xFF0000 (mu ) CODE circleColor = new Color("circle"); circleColor.setRGB(0xFF0000);

Chng ta cng c th ly mu ca mt movie clip. S dng hm getRGB() ly mu ca movie, nhng nh s dng hm toString(16) chuyn thnh gi tr hexa.

CODE circleColor = new Color("circle"); trace(circleColor.getRGB(0xFF0000).toString(16));

Mt cch khc t mu cho movie clip bng cch to mt i tng color transform ng vi 8 mc nh trong hnh di y

u tin, to mt i tng custom variable. Ri to cc property ra, ga, ba, aa, rb, gb, bb, ab. Cc k t u tin r, g, b, a l i din cho t red, green, blue v alpha. Cn k t th hai a v b l i din cho 2 ct bn tri v bn phi Thay v s dng setRGB th chng ta s s dng setTransform nh trong v d di y: CODE circleColor = new Color("circle"); myObject = new Object(); myObject = {ra:100, rb:255, ga:0, gb:0, ba:0, bb: 0, aa: 100, ab: 0}; circleColor.setTransform(myObject);

i tng Date Mt i tng dng sn khc l i tng Date. i tng ny cng c th c xem nh l mt bin bnh thng, n i din cho mt thi im ca thi gian. i tng Date c chia ra 7 phn: nm (year), thng (month), ngy (date), gi (hour), pht (minute), giy (second) v phn trm giy (milisecond). Bn c th to mt i tng Date mi bng cch cung cp cho n 7 thng tin trn CODE myDate = new Date(2002,3,29,10,30,15,500);

Hy th s dng cu lnh trace kim tra ni dung ca myDate xem no. C phi bn nhn c kt qu ny khng? CODE Mon Apr 29 10:30:15 GMT

Rt d hiu, ng khng no? Nhng m cn mt vn : thng l Apr trong khi chng ta truyn tham s vo cho thng l 3, vy phi l March ch!? i tng Date ca Flash cng hot ng tng t nh i tng Date ca cc ngn ng lp trnh khc. Thng c quy nh t 0 n 11, rt c bit, bi ngy th c quy nh t 1 n 31 . Nhng d sao th bn cng phi lm quen i Bn cng c th ly nhng thnh phn t i tng Date. V d di y s ly nm. CODE myDate.getYear()

Bn c th ly gi hin ti bng cch n gin l to mt i tng Date rng Gi hin ti s c a vo i tng. V d: CODE myDate = new Date(); trace(myDate);

Ch : Flash s ly gi ca ng h h thng trong my bn. V th ng h trong my tnh ca bn chy sai th gi ly ra s sai Mng (Array) Mng l mt phn rt quan trng trong lp trnh. Bn s gp mng trong hu ht cc ngn ng lp trnh bi v n l mt cng c rt cn thit cho nhng ngn ng lp trnh phc tp. Mng (Array) l mt dy d liu. Trong th cc d liu s c cng mt kiu d liu vi nhau, nh l cng l tn ca movie clip hoc u cng l v tr ca movie clip To mng Di y l mt v d v mt mng. S dng du ngoc vung v nhng du phy

to mng: CODE myArray = [36,23,63,71,25];

Mng myArray c cha 5 phn t l s nguyn. Mun ly gi tr ca mt phn t trong mng th s dng nh sau: CODE trace(myArray[0]);

Phn t u tin trong mng lun lun c nh s 0. V vy, nh v d trn c 5 phn t th phn t th 0 cha gi tr 36 v phn t th 4 mang gi tr 25. Mt cch khc to mng l s dng new Array() CODE myArray = new Array();

Mun thm mt phn t vo cui mng, s dng cu lnh push. V d di y s to ra mt mng ging mng v d trn: CODE myArray = new Array(); myArray.push(36); myArray.push(23); myArray.push(63); myArray.push(71); myArray.push(25);

Nhng thao tc trn mng kim tra xem mng c bao nhiu phn t th bn c th s dng thuc tnh length CODE myArray = [36,23,63,71,25]; trace(myArray.length);

Cn nu mun ly phn t cui cng ca mng v b phn t ny ra khi mng th s dng cu lnh pop CODE myArray = [36,23,63,71,25]; trace(myArray); a = myArray.pop(); trace(a); trace(myArray);

on code v d trn s trace 5 phn t ca mng myArray. Sau , ly phn t cui cng ca mng tc l 25 a vo bin a, ng thi b phn t 25 ra khi mng. Cui cng trace cc phn t ca mng myArray, lc ny ch cn 4 phn t. S dng kt hp push v pop to mt h thng vo sau ra trc (last in first out), thng gi l stack. Hy tng tng n mt chng sch, chng ta cun sch u tin xung, ri chng ln cun sch th 2, cun th 3, cun th 4 Khi mun ly sch ra th phi ly cun trn cng trc, tc l chng ln cui cng. Ngc li vi pop l shift. N s b ra phn t u tin trong mng. on code di y s lm ging nh on trn nhng s khng b phn t 25 m s b phn t 36: CODE myArray = [36,23,63,71,25]; trace(myArray); a = myArray.shift(); trace(a); trace(myArray);

Ngc li vi shift l unshift. N s chn thm mt phn t vo u mng. Nu bn mun ly ra ch mt phn ca mng th c th s dng hm slice. i s truyn vo s l v tr u tin v v tr cui cng ca phn cn ly ra trong mng. CODE myArray = [36,23,63,71,25] trace(myArray.slice(1,3));

on code trn s tr v 23, 63 v n khng k phn t th 3. Nu khng c i s th 2 th n s ly n cui mng. Mt hm khc na l hm splice. Hm ny s thay th mt s phn t trong mng bng nhng phn t khc. S dng hm ny, i s u tin l v tr ca phn t trong

mng, i s th hai l s phn t mun xa k t phn t trong i s u tin. Truyn i s th 2 l s 0 nu khng mun xa phn t no c. Nhng phn t tip theo l danh sch nhng phn t mun chn vo mng. Ni vy cng hi kh hiu nh, vy hy xt v d ny nh. V d ny s xa phn t 23 v 63 v chn vo phn t 17.

CODE myArray = [36,23,63,71,25]; myArray.splice(1,2,17); trace(myArray);

Sp xp trong mng Chng ta c th sp xp mt mng bng cu lnh sort. V d di y s cho ta mt mng c sp xp theo th t s: CODE myArray = [36,23,63,71,25]; myArray.sort(); trace(myArray);

Cn v d ny s sp xp theo th t ch: CODE myArray = ["Gary","Will","Jay","Brian"]; myArray.sort(); trace(myArray);

Cu lnh reverse o v tr sp xp ca mng. V d: CODE myArray = ["Gary","Will","Jay","Brian"]; myArray.reverse(); trace(myArray);

Mun sp xp mng theo v tr gim dn th s dng sort ri s dng reverse. S dng cu lnh concat ni hai mng li vi nhau. N s khng lm thay i cc mng c, m n s to ra mt mng mi.

CODE myArray = [36,23,63,71,25] otherArray = [58,97,16]; newArray = myArray.concat(otherArray); trace(newArray);

Chuyn i gia chui v mng Chng ta c th s dng cu lnh join i t mt mng thnh chui. Cu lnh ny cn mt i s duy nht l k t ngn cch gia cc phn t ca mng trong chui. Nu bn khng truyn tham s ny vo th k t mc nh l du phy. V d di y tr v 36:23:63:71:25. CODE myArray = [36,23,63,71,25] myString = myArray.join(":"); trace(myString);

Cu lnh join t c s dng v n khng cn thit lm, nhng hm split li rt hu dng. N s chuyn i t mt chui sang mng. V d nh n s chuyn mt chui 36,23,63,71,25 thnh mt mng trong v d di y: CODE myString = "36,23,63,71,25"; myArray = myString.split(","); trace(myArray);

Hy ngh n chuyn chng ta c mt cu ni c lu trong mt chui mun chuyn sang mng, mi phn t trong mng s cha mt ch. Xem v d di y nh: CODE myString = "This is a test"; myArray = myString.split(" "); trace(myArray);

Lm ch chuyn ng

Trong v d ny, chng ta s ly tng ch trong mt cu di v hin th vo textfield. - To movie Flash mi - To mt text field dynamic, cho font ch to, khong 64. Cho text field nm gia mn hnh v canh gia cho text field. t variable = text. - V mt shape ri chn Insert -> Convert to Movie Clip. t tn cho instance ny l Actions ri ko n ra ngoi vng hin th. - Chn on code sau vo movie clip . u tin s s dng hm split tch tng ch ca cu vo trong mng. Sau s khai bo thm 3 bin na. Bin wordNum s lu mt con s l s th t ca ch s hin th. Bin frameDelay s lu s frame mi ch hin ra. Bin frameCount s m s frame m mt ch i qua. CODE onClipEvent(load) { // get the words wordList = ("Imagination is more important than knowledge").split(" "); // set up variables wordNum = 0; frameDelay = 6; frameCount = frameDelay; // prime for first word } onClipEvent(enterFrame) { // time for new word if (frameCount == frameDelay) { _root.text = wordList[wordNum]; // display word wordNum++; // next word if (wordNum >= wordList.length) wordNum = 0; frameCount = 0; } frameCount++; } - No, by gi th xong ri, hy chy th xem no Gi th 13: S dng Rollovers, Rollovers To hnh dng con tr theo thch Vic thay con tr mc nh bng mt con tr theo thch ca mnh rt n gin, ch cn s dng hm Mouse.hide() v t mt movie clip ca mnh vo v tr ca con tr l xong. Con tr c th l bt c hnh dng g cng c, nh l hnh mi tn, hnh bn tay hay mt movie clip. Hnh di y l mt v d ca mt movie clip c dng lm con tr. Ch l mt hnh mi tn n gin nhng bn phi ch rng du cng chnh gia movie clip phi nm ngay u ca mi tn.

Nu bn mun s dng li con tr mc nh th ch cn gi Mouse.show() Mt iu cn lu na l phi chc rng movie clip lm con tr ca chng ta phi trn tt c cc movie clip khc. Chng ta c th chn Modify -> Arrage ->Bring To Front a movie clip ln u nhng ch l trn cc movie clip trong layer m thi. Cho d bn c movie clip ca mnh ln layer trn cng th cng c th b che khut bi nhng movie clip c load vo bng duplicateMovie v attachMovie. V vy, chng ta s s dng swapDepths() a movie clip ny ln trn cng. Cu lnh swapDepths() s a movieclip ln mt level mi, level c th l mt s nguyn 0, 1, 2 9999. V th chng ta s s dng lnh Cursor.swapDepths(9999); a movieclip ca chng ta ln trn cng. Luyn tp: To con tr tnh - To mt movie mi - To mt movie clip mi thay th cho con tr - Quay tr li movie u tin, v chng ta s thay th con tr bng cch CODE onClipEvent(load) { // hide the real cursor Mouse.hide(); // bring this movie clip to the front this.swapDepths(99999); } - Tip theo chng ta s gn v tr ca movie clip vo v tr ca con tr CODE

onClipEvent(enterFrame) { // follow the mouse this._x = _root._xmouse; this._y = _root._ymouse; } - Sau cng, chng ta s phc hi li con tr c khi kt thc movie CODE onClipEvent(unload) { // show the real cursor again Mouse.show(); } - Cui cng l vic chy th movie ca mnh Luyn tp: To con tr ng - Chng ta c th s dng li movie trc - To mt button mi trong root. Hy th lm cho button c s thay i trong over v down chng ta c th thy c s khc bit. - Chng ta s thay i mt t trong movie clip lm con tr. To mt frame th hai, v thm vi nt nh hnh v

- t tn hai frame l normal v over button - t cu lnh stop(); vo frame u tin ca movie clip

- Ko th mt button vo root - t tn movie clip lm con tr l cursor - Thm on code sau vo button CODE on (rollOver) { cursor.gotoAndStop("over button"); } on (rollOut) { cursor.gotoAndStop("normal"); } - By gi hy chy th xem no , hy th click vo button xem sao. Xem kt qu bn lm c ging hnh ny khng nh!

Rollovers Mt k thut thng dng hin th nhng thng tin di l s dng Rollovers a ra nhng thng tin thay v s dng mt button ngi dng click vo th s sang mt trang khc. tng ca k thut ny l khi ngi dng a chut lt nhng vng no . Mi vng s hin th cho ngi dng xem mt thng tin g trn mn hnh. Trong v d sau, s c 9 vng nh th, mi vng s l mt tn ca mt hnh tinh ( bn tri). Khi chng ta a tr chut qua nhng vng th bn phi s xut hin thng tin v hnh tinh . Khi a tr chut ra ngoi th thng tin cng bin mt.

Chng ta c th s dng AS lm Rollovers bng nhiu cch Rollovers s dng button Chng ta s s dng hai event ca button l on(rollOver) v on(rollOut) vit code

x l vic hin th thng tin. Hy xem v d di y: CODE on (rollOver) { information.gotoAndStop("information 1"); } on (rollOut) { information.gotoAndStop("none"); }

Rollovers s dng movie clip Flash khng c hm onClipEvent(mouseOver), v th chng ta s s dng mt hm khc. Hm hitTest s cho chng ta bit rng con tr chut c ang trn movie clip hay khng. V chng ta c th lm nh sau CODE onClipEvent (enterFrame) { if (this.hitTest(_root._xmouse,_root._ymouse, true)) { _root.information.gotoAndStop("information 1"); } else { _root.information.gotoAndStop("none"); } } Nhng lm nh vy vn cn mt vn na. Bi v movie clip ca chng ta s vn tip tc chy t frame ny sang frame khc, chng ta gi hm gotoAndStop() dng li. Hy tng tng chng ta c nhiu rollovers. Ci u tin s a movie clip information v frame none, mt khc th rollovers khc li a movie clip information v mt ni khc. iu ny s lm xy ra xung t. V vy, chng ta s lm nh sau. Chng ta s ghi nh li rng con tr chut c ang trn movie clip hay khng. Nu c, n s thi hnh lnh khi con tr chut ra ngoi movie clip. Cn nu khng, n s thi hnh lnh khi con tr chut i vo movie clip. lm iu ny, chng ta s s dng bin over, ph thuc vo v tr ca con tr chut m n s mang gi tr true hoc false. i vi mi frame, chng ta s s dng hm hitTest kim tra v tr ca con tr chut. Nu v tr con tr i lp vi over th s xy ra s thay i. Chng ta hy xem on code sau: CODE onClipEvent (load) { over = false; }

onClipEvent (enterFrame) { // kim tra xem liu con tr chut c ang di chuyn qua movie clip khng testOver = (this.hitTest(_root._xmouse,_root._ymouse, true)); if (testOver and !over) { _root.information.gotoAndStop("information 1"); over = true; }else if (!testOver and over) { _root.information.gotoAndStop("none"); over = false; } }

Rollovers s dng frame Nh ni trn, c rt nhiu cch lm rollovers. y, chng ta s bn v mt cch khc. Thay v s dng movie clip cho mi thng tin cn hin th, chng ta s s dng timeline chnh lu thng tin. Frame u tin s l frame none, v cc frame tip theo s cha cc thng tin. Chng ta hy xem hnh bn di

V d trn s dng button cho cc hotspot, v chng ta hy lu rng cc button s xut hin trong tt c cc frame, nhng thng tin cn hin th th ch xut hin mt vi frame. By gi cng vic vit code ca chng ta gn ging nh lm rollovers bng button. Nhng chng ta khng cn phi gi hm gotoAndStop t movie clip information. CODE on (rollOver) { gotoAndStop("information 1"); } on (rollOut) {

gotoAndStop("none"); } Li th ca vic s dng cch ny l chng ta c th thay i nhng thng tin trong cc frame rt d dng, chng ta khng phi m x vo tng movie clip. Nu bn quen s dng nhiu frame th y l mt cch tt cho bn Lu rng c ba cch trn u cho mt kt qu nh nhau, khng c s khc bit. y, chng ti ch mun trnh by cho cc bn thy nhng cch lm khc nhau m thi! Luyn tp: Hin th thng tin No, by gi cc bn hy th s dng nhng hiu bit ca mnh v cch thay i con tr v rollovers lm mt chng trnh xem no! Chng trnh ny s hin th nhng thng tin v cc hnh tinh. Chng ta s c 9 hotspot, mi hotspot l mt hnh tinh, mi hotspot s hin th mt hp thng tin khi a tr chut ngang qua. Mi hotspot l mt button, v th ngi dng c th click vo di chuyn n mt frame khc xem nhng thng tin v hnh tinh .

- u tin, hy to mt movie mi trong Flash. Movie ny s c 10 frame, t frame 2 cho n frame 10 s cha thng tin ca cc hnh tinh. t tn frame 1 l none v trng vng hin th thng tin. t 10 button bn tri, mi ci cho mt hnh tinh. Mt movie clip summary s xut hin hin th thng tin vn tt v cc hnh tinh khi a tr chut ngang qua. Movie clip ny cng s cha 10 frame: 1 frame trng v 9 frame cha thng tin ca 9 hnh

tinh. Chng ta cng phi ch vic s dng layer cng rt quan trng, trong v d ny th chng ta s s dng 3 layer v movie clip summary s c t layer trn cng - t lnh stop(); vo frame u tin, v cng t trong frame u tin ca movie clip summary - No, hy vit code nh! CODE on (rollOver) { summary.gotoAndStop("mercury"); } on (rollOut) { summary.gotoAndStop("none"); } - Nhng button trn s a ngi dng n nhng frame khc nhau xem thng tin v hnh tinh, chng ta li vit code cho cc button CODE on (release) { gotoAndStop("mercury"); } Lu rng chng ta c hai frame tn mercury, mt frame timeline chnh v mt trong movie clip summary - To mt movie clip thay th con tr chut, v vit code nh sau CODE onClipEvent(load) { Mouse.hide(); this.swapDepths(99999); } onClipEvent(enterFrame) { this._x = _root._xmouse; this._y = _root._ymouse; } onClipEvent(unload) { Mouse.show(); }

- Tip theo chng ta s lm cho con tr chut thay i khi a con tr ngang qua cc button. Hy thm on code sau vo phn code ca button CODE on (rollOver) { summary.gotoAndStop("mercury"); cursor.gotoAndStop("over button"); } on (rollOut) { summary.gotoAndStop("none"); cursor.gotoAndStop("normal"); } on (release) { gotoAndStop("mercury"); } By gi th movie ca bn xong. Bn hy chy th xem sao Gi th 14: Thnh phn Scroll, Scrolling Mc d scrollbar rt quen thuc trong cc ng dng Mac, Windows, cc trnh duyt web nhng my ai hiu c n hot ng nh th no. L do n gin l do y l mt trong nhng thnh phn trc quan, rt d xy dng m khng cn phi vit code nhiu. Mi ngi s dng n nhng khng suy ngh nhiu v n. Kt qu l khi nhng nh pht trin s dng Flash to ra nhng scrollbar ca ring h th gp kh khn. V vy, chng ta hy cng nhau tm hiu 4 thnh phn c bn ca mt scrollbar v hy tm hiu scrollbar l g. Hnh di y cho chng ta thy nhng thnh phn c bn ca mt scrollbar l: mi tn ln, mi tn xung, thanh trt v khay trt.

Thanh trt (Slider)

Thanh trt phc v nhiu mc ch. u tin, thanh trt s trt trn khay trt cho chng ta thy v tr ca khi vn bn chng ta ang xem. Nu thanh trt trn cng th chng ta ang xem dng u tin ca vn bn, cn nu thanh trt cui th chng ta ang xem dng cui cng. Nh ni, thanh trt s c kp cht v trt trn khay trt. Khi chng ta ko thanh trt trt trn khay trt th khi vn bn s c cp nht v tr thch hp. Mi y, scrollbar c thm mt c tnh mi. Thay v kch thc ca thanh trt s b gn sn vi mt gi tr th kch thc ny s c thay i ty vo di vn bn. V th, v tr u tin ca thanh trt s ng vi dng u tin ca vn bn v v tr cui cng s ng vi dng cui cng. V d mt textbox c scrollbar hin th c 10 dng ca mt vn bn c 100 dng th chiu cao thanh trt s l 10% so vi khay trt. Nhng chng ta s khng bn vn ny y. Khay trt (Bar) Khay trt c chc nng chnh l cha thanh trt v cho thanh trt trt trn n. Chiu di ca khay trt ph thuc vo di ca vn bn. Khay trt cn c mt chc nng na l khi ta click vo khay trt th khi vn bn s di chuyn mt trang. Khi click vo phn trn ca thanh trt th khi vn bn s di chuyn n trang trc, cn nu click vo phn di thanh trt th khi vn bn s di chuyn n trang sau. Cc mi tn Mi tn ln v xung l hai thnh phn n gin nht ca scrollbar, n ch c chc nng cho ngi dng di chuyn khi vn bn tng dng mt. Nhng thuc tnh chung Scrollbar c mt s thuc tnh chung m chng ta cn phi xem xt. u tin, cc thnh phn ca scrollbar ch hot ng khi chng ta click vo, v s tip tc hot ng cho n khi chng ta th nt chut ra. Ly v d: nu ngi dng click vo mi tn xung di chuyn mt khi vn bn th khi vn bn s di chuyn tng dng mt cho n khi chng ta th nt chut ra. Mt vn na l v tr thanh trt phi c cp nht lin tc khi nhng thnh phn khc c kch hot. Scroll mt vn bn u tin, chng ta m khung Properties ra t tn li cho text field. Nh trong hnh di y, chng ta s t tn cho text field l scrollText

Sau , chng ta c th vit code cho n ly d li u vo. Nhng trc ht cn t cho text field ca chng ta mt scroll. Khi chn vo text field ri th bn c th thay i kch thc ca text field bng cch ko hnh vung gc di bn phi ca text field. Cn nu khng t kch

thc th text field s va hiu th ni dung bn trong. Thay v iu chnh bng hnh vung mu trng th lc , chiu cao ca text field s c t iu chnh theo kch thc ni dung bn trong, c ngha l nu vn bn bn trong text field c nhiu dng th chng ta khng th lm cho text field ch hin mt vi dng scroll. Mun l xut hin scroll th chng ta hy gi phm Shift v click vo hnh vung trng tr thnh hnh vung en, lc ny chng ta c th iu chnh kch thc text field theo mun. Nh vy l chng ta kch hot scroll cho text field. Cn mt s thuc tnh khc lien quan n scroll nh Thuc tnh scroll s cho chng ta bit dng no trong vn bn s xut hin u tin. VD nh scroll = 1 th dng u tin s c hin th u tin, nu scroll = 2 th dng th hai s hin th v lc ny th dng 1 s khng thy c. Thuc tnh maxscroll cho chng ta bit gi tr ln nht ca scroll Thuc tnh scroll v bottomscroll cho chng ta bit chnh xc dng vn bn no trn u v dng no cui scroll vn bn ln hay xung bn cn phi tng hoc gim gi tr ca scroll. Th l xong! Luyn tp: Thit k mt chng trnh scroll vn bn n gin Bi tp ny tht ra rt d. Trong v d di y, chng ta s xy dng mt chng trnh vi mt text field dynamic cha vn bn v hai button nh hnh di y

- Tm mt on vn bn no dn vo text field (tm on no di di t ) - By gi hy to mt movie mi trong Flash - S dng cng c Text Tool to mt text field - M phn Properties ra v t tn cho text field ca chng ta l scrollText. t thuc tnh Mutiline v Show Border Around Text - Dn on vn bn m bn chun b vo text field - To hai button ging nh hai hnh v trn. Mt button iu khin i ln, mt i xung. - Nhp on code sau cho button i ln: CODE on (press) {

scrollText.scroll--; } - V nhp on code ny cho button i xung: CODE on (press) { scrollText.scroll++; } - Ok, by gi bn hy chy th movie ca mnh xem sao. Bn hy th click vo button scroll vn bn Gi th 15: Cc thnh phn nhp liu Cc bn c th to c nhiu thnh phn nhp liu bng Action Script, chc hn cc bn gp cc thnh phn ny trong cc th HTML. Trong chng ny, cc bn s hc cch lm checkbox, radiobutton bng Action Script. Bn cng s hc c cch lm sao chuyn t thnh phn ny sang thnh phn khc trong form bng cch nhn nt TAB, v lm sao hn ch ni dung ngi dng nhp vo Cc ni dung trong chng ny: - Cch to checkbox - Cch to radiobutton - S dng TAB chuyn t thnh phn ny sang thnh phn khc - Hn ch ni dung nhp liu To Checkbox Trong Hour 8, cc bn bit cch to mt selectable movie clip. CheckBox cng l mt Selectable movie clip ging vi cc checkbox chun s dng trong cc h iu hnh Mac v Windows. to ra mt Checkbox bn cn 2 button v 1 movie clip. Button u tin th hin trng thi Off ca Checkbox, c ngha l khi checkbox cha c chn. Mt button th hin trng thi On, c ngha l cng checkbox nhng c chn. Hnh di y l 3 checkbox lm v d.

Check box u tin ang c chn, ci th 2 cha c chn, ci th 3 th ngi dng ang chun b chn. Cc bn c bit cch no cho 3 thnh phn ca checkbox hot ng chung nh vy c khng? Rt n gin, button Off s c a vo mt movie clip ring t frame u tin, bm F6 to frame k tip v t button On vo frame th 2. t tn

frame 1 l Off, frame 2 l On. Tip theo, cho mt cu lnh stop(); vo frame 1 dng movie clip li ngay . Trong mi button s c mt on code gi mt hm ngoi time line ca movie clip c cha 2 button x l khi mi nt c nhn. CODE on (release) { pressButton(); } Ngoi ra, trong frame Off (frame 1) s cn cha mt on code na ngoi cu lnh stop(); CODE state = false; function pressButton() { state = !state; if (state) { gotoAndStop("on"); } else { gotoAndStop("off"); } } Bin state kim tra trng thi ca checkbox. Khi click mt button th hm pressButton s c gi. Trong , s i li trng thi ca state, c ngha l lc u l false (cha chn), sau khi click s thnh true ( chn). Tip theo, hm pressButton s kim tra gi tr ca bin state a ngi dng n frame thch hp. Nu state = true th s nhy n frame On, cn nu state = false th s nhy n frame Off. To RadioButton Vic to mt Radiobutton s phc tp hn mt cht so vi checkbox. Cc Radiobutton s c gom vo mt nhm c quan h vi nhau. Checkbox c s dng trong nhng trng hp chn la khng c tnh loi tr, c ngha l ngi dng c th chn nhiu checkbox. Ngc li, Radiobutton c s dng trong nhng trng hp c tnh loi tr, c ngha l trong mt nhm Radiobutton th ch c mt checkbox c chn ti mt thi im, khng c chuyn 2 Radiobutton u c chn. Nu bn chn mt RadioButton, khi bn chn qua mt Radiobutton khc th chn la c s t ng mt i, chuyn qua Radiobutton mi. Hnh di y l mt nhm Radiobutton

RadioButton u tin ang c chn, nhng ngi dng ang chun b chn

RadioButton th 2, nu ngi dng chn RadioButton 2 hoc bt k ci no khc th RadioButton u tin s t ng mt chn la. Mt RadioButton n gin cng tng t nh mt Checkbox, mt movie clip c 2 frame cha 2 button biu hin 2 trng thi ca RadioButton. Frame u tin cha mt vng trn rng, frame th 2 ch mt vng trn vi du chm trn gia. im khc nhau gia Checkbox v RadioButton chnh l code ca chng. Code ca RadioButton s phc tp hn code ca CheckBox. Phn u code ca Radiobutton s c vit frame u tin. N c vit ngoi, khng nm trong hm no c, iu ny c ngha l on code ny s chy khi load movie clip. CODE stop(); // kim tra c phi l RadioButton u tin trong nhm hay khng if (_parent.radioButtons == undefined) { // to mt array RadioButton _parent.radioButtons = new Array(); // RadioButton u tin mc nh c chn gotoAndStop("on"); state = true; } else { // cc RadioButton khc khng c chn state = false; } // chn array RadioButton ra ngoi level ngoi _parent.radioButtons.push(this); Khi ngi dng click vo button, th hm turnOn s c gi. iu u tin l hm turnOn s duyt qua tt c cc RadioButton (cc movie clip), gi hm turnOff cho tng RadioButton. Ni n gin c ngha l khi click vo mt RadioButton th trc tin tt c cc RadioButton trong nhm u quay v trng thi Off, sau s chuyn trng thi ca RadioButton c chn thnh On. CODE function turnOn() { // chuyn tt c thnh OFF for(var i=0;i<_parent.radioButtons.length;i++) { _parent.radioButtons[i].turnOff(); } // chuyn RadioButtond c chn thnh ON gotoAndStop("on"); state = true; }

Tip theo l on code cho hm turnOff() CODE function turnOff() { gotoAndStop("off"); state = false; } Tip theo l xy dng hm getValue() kim tra xem RadioButton no ang c chn. Hm ny s c mt movie khc gi. Hm ny rt n gin, n s duyt qua tt c cc RadioButton trong array RadioButton xem ci no ang c chn. CODE function getValue() { // duyt tt c cc RadioButton for(var i=0;i<_parent.radioButtons.length;i++) { // tm RadioButton no ang c chn if (_parent.radioButtons[i].state) { return(_parent.radioButtons[i]._name); } } // nu khng c ci no c chn th tr v mt chui rng return ""; }

Luyn tp: Chng trnh trc nghim By gi hy cng nhau p dng nhng th hc c v CheckBox v RadioButton lm mt chng trnh trc nghim n gin nh. Mi frame s cha mt cu hi ring. V d frame u tin s cha cu hi nh hnh di y, v c nhng cu tr li di

Bt u nh - To mt movie mi trong Flash - To Checkbox nh c hc ri . - Ri sau ko to 5 bn ca movie clip checkbox vo, t tn l: Flash, Director, Fireworks, Freehand, and Dreamweaver. - To cc cu tr li v mt static text k bn Checkbox nh hnh trn. - To mt button Next chuyn n cu hi tip theo. - Chn on code sau vo frame u tin CODE results = new Array(); stop(); on code trn c nhim v to mt mng results lu kt qu ca cc cu tr li, ng thi cng dng movie ti y. - Khi nhn nt Next th s chuyn sang cu hi tip theo v lu cu tr li hin thi vo mng results CODE on (release) { if (Flash.state) results.push("Flash"); if (Director.state) results.push("Director"); if (Fireworks.state) results.push("Fireworks"); if (Freehand.state) results.push("Freehand"); if (Dreamweaver.state) results.push("Dreamweaver"); nextFrame(); } - Tip theo, trong frame th hai s l cu hi th hai. V cu hi th hai ch cho chn mt la chn nn chng ta s s dng RadioButton nh hnh di y

- To RadioButton nh phn trc ri a vo movie 3 ci tn: Windows, Macintosh, and Linux - Chn ni dung cu tr li vo lun nh hnh trn - Copy nt Next vo frame 2 nhng chng ta s thay on code bng mt on code khc. CODE on (release) { results.push(Windows.getValue()); nextFrame(); } on code trn s dng hm getValue kim tra xem RadioButton no ang c chn - Ok, n y th bn t lm tip nhng cu hi tip theo nh, tng t nh vy thi. Nhng m hy nh l tn cc thnh phn phi khc nhau nh. Cc bn cng c th s dng hm trace a kt qu nhng cu tr li ra ca s Output xem. - Trong Hour 18, cc bn s hc v cch a d liu ln server, khi cc bn c th ci tin chng trnh ny a cu tr li ln server kim tra. S dng Tab chuyn t thnh phn ny sang thnh phn khc Nhng ngi s dng Flash 5 lun than phin v vic khng th s dng tab chuyn i gia cc thnh phn nh vy. Cng vic chuyn i bng cch nhn phm Tab ny c gi l Tab Order, chng ta thng thy vic ny trong hu ht cc chng trnh chuyn nghip, v d nh trong mt trnh duyt web, iu ny s mang li nhiu thun tin cho ngi s dng, n s chuyn n thnh phn logic tip theo trong chng trnh. Tuy nhin, s la chn thnh phn logic tip theo ca Flash khng phi lc no cng ng. V th, Flash ch c th cha v tr ca thnh phn m thi. Ly v d nh trong hnh bn di, Flash s hiu rng thnh phn tip theo thnh phn u tin s l ci di n ch khng phi l ci k bn.

May mn l chng ta c th t li Tab order cho cc thnh phn bng cch t li thuc tnh tabIndex. Nu chng ta c 4 text field nh hnh trn: text1, text2, text3, text4 th chng ta c th s dng on code sau: CODE text1.tabIndex = 1; text2.tabIndex = 2; text3.tabIndex = 3; text4.tabIndex = 4; iu ch khi s dng tabIndex l phi ch n label ca cc textfield v trnh s dng li mt s nhiu ln, iu ny s lm cho Flash b ln ln. Mt iu na l cho d l mc nh ca Flash hay l bn s dng tabIndex th Flash cng khng t ng t focus cho thnh phn u tin, v th, bn phi t lm iu ny. lm c nh vy, bn s dng mt lnh trong i tng Selection bo cho Flash bit thnh phn mc nhc t focus CODE Selection.setFocus(text1); Bn c th s dng lnh Selection.setFocus bt c lc no cng c chuyn n mt thnh phn mong mun. Vic ny s rt quan trng, bn s t con tr vo textfield thay v bt ngi dng phi click vo textfield trc khi g. Bn c th s dng Selection.getFocus kim tra xem thnh phn no ang c focus. on code di y s l mt v d. Khi ngi dng chuyn focus sang mt thnh phn khc th bn s bit ngi dng chuyn n u. CODE Selection.addListener(this); this.onSetFocus = function(oldFocus, newFocus) { trace(oldFocus+","+newFocus); }

Hn ch nhp liu Khi ngi dng nhp d liu vo mt textfield, cng c lc bn mun hn ch vic nhp liu . V d trong nm sinh, bn ch mun ngi dng nhp s vo, khng cn phi nhp ch. Bn c th hn ch nhng k t c php nhp vo textfield bng cch t gi tr ca thuc tnh restrict ca textfield . Nu khng t gi tr th textfield c th nhn tt c cc k t. Nhng nu thuc tnh restrict ca textfield l mt chui k t th ch c nhng k t trong chui mi c chp nhn. Di y

l mt v d v hn ch nhp liu, ngi dng ch c th nhp s m thi CODE text1.restrict = "01234567890"; Cn di y l mt v d na nu nhp liu l email CODE text2.restrict = "abcdefghijklmnopqrstuvwxyz0123456789@.-_"; Mt iu ch l c cc k t in hoa v in thng u c chp nhn trong text2 Bn cng c th hn ch s k t c php nhp vo mt textfield. Ci ny bn cng c th khng cn phi dng AS, c th t thuc tnh trc tip trong khung Properties CODE text1.restrict = "01234567890"; text1.maxChars = 4;

Luyn tp: Kim tra d liu nhp By gi chng ta s lm mt chng trnh gm mt form nhp liu, yu cu nhp vo tn, nm sinh, email. V chng ta s kim tra cc thng tin nhp vo ny Tn ngi dng t nht phi c 3 k t. Nm sinh phi c 4 s v l nhng nm trong khong 100 nm trc n nay. Cn email t nht phi c 7 k t v c dng a@b.c, a, b c th l tu nhng c phi c t nht l 3 k t v bt buc phi c k hiu @. l nhng yu cu c bn. No, bt u nh! - To mt movie mi - To 3 textfield cho cc ni dung nu trn, t tn l userName, userYear, v userEmail. t cc variable tng ng l userNameText, userYearText, and userEmailText. Bn cng cn phi to mt dynamic textfield lin kt vi variable feedback. To mt nt Submit. Movie ca bn s ging nh hnh di ny nh

- t on code sau vo frame u tin dng li v thit lp cc thuc tnh hn ch nhp liu CODE stop(); // hn ch chiu di ti a ca tn l 64 k t

userName.maxChars = 64; // nm sinh phi c 4 s userYear.restrict = "01234567890"; userYear.maxChars = 4; // hn ch d liu email userEmail.restrict = "abcdefghijklmnopqrstuvwxyz0123456789@.-_"; userEmail.maxChars = 128; - Tip theo l t con tr vo text field userName lc movie mi bt u CODE Selection.setFocus(userName); - kim tra khi no ngi dng nhp liu xong, chng ta s thm mt listener bt event nh on code di y CODE Selection.addListener(this); N s bo cho chng ta bit khi no xy ra event onSetFocus - Tip theo t gi tr ca bin ignoreSetFocus l False, chng ta s s dng n bin ny sau CODE ignoreSetFocus = false; - Tip theo chng ta vit hm onSetFocus bt event. CODE this.onSetFocus = function(oldFocus, newFocus) { // this is a focus reset, so ignore if (ignoreSetFocus) { ignoreSetFocus = false; return(0); } // use the appropriate check function if (oldFocus == userName) { ret = checkUserName(); } else if (oldFocus == userYear) { ret = checkUserYear(); } else if (oldFocus == userEmail) { ret = checkUserEmail(); }

if (!ret) { // ignore this focus change and go back ignoreSetFocus = true; Selection.setFocus(oldFocus); } } Hm ny s nhn hai i s. i s th nht l textfield trc khi chuyn focus v i s th hai l textfield sau khi chuyn focus. Hm checkUserName s kim tra tn ngi dng CODE // tn phi c t nht 3 k t function checkUserName() { if (userNameText.length < 3) { feedback = "Bn phi nhp t nht 3 k t" return(false); } // quay tr li feedback feedback = ""; return(true); } Hm checkUserYear s kim tra nm nhp vo CODE // nm phi t khong 100 nm n nay function checkUserYear() { // ly nm today = new Date(); thisYear = 1900+today.getYear(); // kim tra nhp if (parseInt(userYearText) == Math.NaN) { feedback = "Bn phi nhp nm sinh."; return(false); // nu nm sinh qu sm (khng tht) } else if (parseInt(userYearText) < thisYear-100) { feedback = "Bn phi nhp ng nm sinh, t 100 nm trc n nay"; return(false); // nu nm sinh l trong tng lai :) } else if (parseInt(userYearText) > thisYear) { feedback = "Bn phi nhp ng nm sinh"; return(false); }

// quay tr li feedback = ""; return(true); } Tip theo l hm chechUserEmail kim tra email CODE // kim tra email function checkUserEmail() { if (userEmailText.length < 7) { feedback = "Email qu ngn"; return(false); } else if (userEmailText.indexOf("@") == -1) { feedback = "Thiu k t @"; return(false); } else if (userEmailText.indexOf(".") == -1) { feedback = "Thiu du chm (.)"; return(false); } else if (userEmailText.indexOf("@") > userEmailText.indexOf(".")) { feedback = "@ v du chm khng ng"; return(false); } else if (userEmailText.lastIndexOf(".") > userEmailText.length-3) { feedback = "Domain khng hp l" return(false); } // quay tr li feedback = ""; return(true); } - Th l kim tra d liu xong. By gi chng ta s dng cc hm ny kim tra d liu nhp vo v xut ra kt qu. Hm sau s kim tra tng nhp liu, nu mt trong nhng trn sai th s tr v kt qu false, cn ng ht s l true CODE function checkAll() { if (!checkUserName()) { return(false); } else if (!checkUserYear()) { return(false); } else if (!checkUserEmail()) { return(false); } return(true);

} - By gi chng ta vit code cho nt Submit. Khi nhn nt Submit th s gi hm CheckAll v a sang frame tip theo vi li cm n. CODE on (release) { if (checkAll()) { nextFrame(); } } Gi th 16: Menu v button ng Menu h thng rt quen thuc vi cc chng trnh my tnh hin nay. H iu hnh ca chng ta v ngay c Flash u c mt h thng menu trn u. Menu l mt cch tt a ra nhiu la chn cho ngi dng m li t tn din tch mn hnh. Trong gi th 16 ny, chng ta s hc v: - Cch lm mt menu n gin - S dng menu trong movie - To mt menu x xung khi chng ta click vo mt nt - Cch to button ng - S dng button ng trong movie Cch lm mt menu n gin Nhng bn mi lm quen vi AS thng mun bit cch to menu. Tht ra to mt menu rt n gin, chng ta tng bit qua ri, hoc c th cc bn khng . Cch thc hot ng ca n l c mt button, v khi ngi dng a con tr qua button th mt lot nhng button khc s xut hin ln lt bn di button to thnh mt dy menu. Hnh di y l mt v d

Khi chng ta a con tr ngang qua nt About Us th mt lot nhng button khc s xut hin nh hnh bn phi. Nh vy, chng ta cn c 2 frame trong movie clip lm menu. Frame th nht s ch cha button About Us, frame th hai s cha button About Us v 3 button cn li. frame th nht, khi ngi dng a con tr ngang qua button About Us th s nhy sang frame th 2 v dng li frame 2 cho n khi ngi dng a con tr chut ra ngoi, khi th s tr v frame 1. Nu , cc bn s thy cch ny ging nh chng ta c hc Gi th 13 v RollOver. Chng ta s dng hm hitTest kim tra xem v tr ca con tr chut c nm trong button khng. Di y l on code x l vic ny. Chng ta cng xem nh! CODE

onClipEvent(load) { previouslyOver = false; } onClipEvent(enterFrame) { // kim tra v tr con tr currentlyOver = this.hitTest(_root._xmouse,_root._ymouse,true); // kim tra s thay i if (!previouslyOver and currentlyOver) { previouslyOver = true; this.gotoAndStop("on"); } else if (previouslyOver and !currentlyOver) { previouslyOver = false; this.gotoAndStop("off"); } } Hy ch , nu bn s dng AS qun l nhng thnh phn khc c t chung trong frame, hy chc rng bn phi a menu ln trn cng bng cch s dng hm swapDepths Luyn tp: Lm mt menu No, chng ta bt tay vo lm th mt menu n gin nh! Menu chnh ca chng ta s c 3 phn: About Us, Products v Store, mi menu li cha nhiu menu con. - Vic u tin l to mt movie mi trong Flash - To mt button n gin thi, button ny khng nn c ch, v nh cha ch trng chng ta a ch vo sau - To movie clip mi, t tn l About Us Menu. To hai layer, mt l Label v mt l Buttons - Trong layer Buttons, ko button va to vo. t dng ch About Us ln trn - Layer Label s tri ra trn 2 frame. Nhng 2 frame trong layer Buttons s khc nhau, frame u t tn l off, frame 2 t tn l on. - Trong frame th hai ca layer Buttons, ko thm 3 button na vo v to ni dung cho chng l History, Clients, v Partners. Nh t cu lnh stop() vo frame u tin. Movie clip ca chng ta by gi s ging nh hnh bn di

Quay tr li level root, ko movie clip About Us Menu t Library vo, t tn l aboutUsMenu, v chn on code sau: CODE onClipEvent(load) { previouslyOver = FALSE; } onClipEvent(enterFrame) { currentlyOver = this.hitTest(_root._xmouse,_root._ymouse,true); if (!previouslyOver and currentlyOver) { previouslyOver = true; this.gotoAndStop("on"); } else if (previouslyOver and !currentlyOver) { previouslyOver = false; this.gotoAndStop("off"); } } - By gi hy chy th movie ca bn xem no. a con tr vo button About Us xem iu g xy ra! - Phn vic cn li l ca bn . Lm tng t cho cc menu cn li! To mt menu x xung khi chng ta click vo mt nt C nhiu cch lm menu x xung, v cng c nhiu cch menu hot ng. Chng ta bit mt cch trong v d phn trc, khi ngi dng a con tr ngang qua mt button th mt lot button khc s xut hin dc bn di to thnh mt menu, n gin ch bng 2 frame. Menu x xung s hot ng theo mt cch khc: khi ngi dng click vo mt

button, mt lot menu s xut hin nhng ngi dng phi gia chut v ko con tr chn cc menu con, mun chn menu no th th chut ti menu . Chng ta hy nghin cu m x menu x xung ny nh! Chng ta cng s to 2 frame nh bi trc, frame u cha button l tiu ca menu, frame hai cha cc button xp dc xung thnh mt h thng menu khi tiu ca menu c click. Tuy nhin cch vit code s khc i! y l code cho button lm tiu cho menu CODE on (press) { expandMenu(); } on (release, releaseOutside) { collapseMenu(); } Khi ngi dng click vo button th n s gi hm expandMenu(), khi ngi dng th chut ra th n s gi hm collapseMenu() Ngoi ra th chng ta cn s dng cc event on(dragOver) v on(dragOut), hai event ny cng ging vi on(rollOver) v on(rollOut) nhng m phi gi chut trong khi di chuyn CODE on (dragOver) { rollOverMenu(); } on (dragOut) { rollOutMenu(); } Button tiu gi 4 hm expandMenu(), collapseMenu(), rollOverMenu(), rollOutMenu(), by gi chng ta s vit cc hm ny, t chng trn frame nh! Hm expandMenu() s t gi tr cho bin expanded l true v nhy sang frame th hai CODE function expandMenu() { expanded = true; gotoAndStop("on"); } Hm collapseMenu() s lm ngc li CODE function collapseMenu() { expanded = false;

gotoAndStop("off"); } Hm rollOverMenu s kim tra bin expanded v s di chuyn n frame thch hp nu expanded = true. C ngha l khi ngi dng click chut vo button tiu th menu s x xung v ngi dng phi gi chut trong lc di chuyn chn, nu th chut ra th menu s thu li. CODE function rollOverMenu() { if (expanded) { gotoAndStop("on"); } } function rollOutMenu() { if (expanded) { gotoAndStop("off"); } } Chng ta s vit code tip cho cc menu x xung. Chng u l cc button, v chng ta s vit event on(release) cho chng bt s kin khi ngi ngi th chut trn button , c ngha l ngi dng chn menu . Khi , n gi hm collapseMenu() ri thc hin cng vic ca mnh, y n gin ch gi hm trace. Chng ta cng vit event on(dragOver) v on(dragOut) cho cc button ny gi menu li khi ngi dng gi chut v ko qua cc button cng nh s thu menu li khi ngi dng th chut ra hoc ko ra ngoi. CODE on (release) { collapseMenu(); trace("History Button Pressed"); } on (dragOut) { rollOutMenu(); } iu cui cng cn phi lm l phi thay i thuc tnh cho cc button. Trong phn khung properties ca button, chuyn Track as Button thnh Track as Menu Item. iu ny s lm cho button nhn c s kin release thay v s nhn press trc. Cn c rt nhiu cch lm menu, n ph thuc vo mc ch s dng ca bn v kh nng s dng AS ca mi ngi Button ng

Mt cch khc cng tng t lm menu x xung l s dng button ng. Chng ta c th lm mt menu x xung m khng cn phi lm cch button trc, chng ta , th v nh. s c t sinh ra bng AS iu u tin cn phi lm l to mt button mu. Tip theo, t button vo trong mt movie clip, movie clip ny s c hai thnh phn, mt l button v hai l dynamic text trn button, dynamic text s c lin kt vi bin buttonLabel. Trong ca s Library, click chut phi ln tn movie clip v chn Linkage. Nh chn mc Export for Actionscript v t tn cho n l buttonMovieClip. c ri, by gi chng ta c mt button mu, tip theo chng ta s s dng AS s dng button ny. Vic ny cng rt n gin, chng ta s dng lnh attachMovie to mt instance ca movie clip v t li gi tr cho dynamic text trong movie clip, v t li v tr ca n bng cch t cch thuc tnh _x, _y. CODE function createButton(buttonLabel, x, y) { this.attachMovie("buttonMovieClip","button"+buttonLevels,buttonLevels); bmc = this["button"+buttonLevels]; bmc.buttonLabel = buttonLabel; bmc._x = x; bmc._y = y; buttonLevels++; return(bmc); } c ri, hy th movie ca bn xem no Bn c th to ra hng lot button ng bng cch gi mt lot hm createButton, hoc chng ta s lu cc tn button vo mt mng ri dng vng lp for gi hm createButton. Nhng c mt vn cn gii quyt l lm th no x l ring cho tng button. Nu vit code ngay trong button th cc button s nh nhau. Vy lm cch no lm cho cc button c th x l nhng cng vic khc nhau? Button s gi nhng hm t ngoi root, nh vy th mi button c th gi mt hm khc nhau, iu ny cng c ngha l chng s thc hin nhng vic khc nhau Luyn tp: S dng button ng to menu - To mt movie mi trong Flash - To button mu nh trong phn trc, t on code sau vo button CODE on (rollOver) { _parent.buttonRolloverAction(thisAction,buttonLabel); } on (release) { _parent.buttonClickAction(thisAction,buttonLabel); }

iu ny c ngha l khi button s gi hm buttonRollOverAction khi a chut qua, v gi hm buttonClickAction khi click chut. Hai i s ca n s gip bo button no c click - Di y l hm createButton to button ng, nhng ln ny chng ta s to mt lot button t mt mng lu sn CODE function createButton(buttonLabel, x, y, buttonAction) { this.attachMovie("buttonMovieClip","button"+buttonLevels,buttonLevels); bmc = this["button"+buttonLevels]; bmc.buttonLabel = buttonLabel; bmc._x = x; bmc._y = y; bmc.thisAction = buttonAction; buttonLevels++; return(bmc); } // To mt lot button t mng function createButtonList(buttonList, x, y, direction) { for (var i=0;i<buttonList.length;i++) { ret = createButton(buttonList[i].label,x,y, buttonList[i].action); buttons[i].mc = ret; if (direction == "down") { y += 20; } else if (direction == "across") { x += 100; } } } - Cn y l cch to mng to button CODE mainButtonList = new Array(); mainButtonList.push({label:"About Us", action:"aboutUsButtonList"}); mainButtonList.push({label:"Products", action:"productsButtonList"}); mainButtonList.push({label:"Store",action:"storeButtonList"}); - Cng vic tip theo l gi hm createButtonList to button CODE buttonLevels = 1; createButtonList(mainButtonList,100,100,"across");

- Nu bn th chy movie lc no th chng ta s thy 3 button c to nhng m s cha lm g khi a chut ngang qua hay click vo. By gi chng ta s vit hm buttonRollOverAction x l CODE function buttonRolloverAction(thisAction,thisLabel) { if (thisAction == "aboutUsButtonList") { deleteAllButtonLists(); createButtonList(aboutUsButtonList,100,120,"down"); } else if (thisAction == "productsButtonList") { deleteAllButtonLists(); createButtonList(productsButtonList,200,120,"down"); } else if (thisAction == "storeButtonList") { deleteAllButtonLists(); createButtonList(storeButtonList,300,120,"down"); } } - Hm buttonRollOverAction gi hm createButtonLists vi cc i s khc nhau l mt trong 3 mng c nh ngha di y CODE aboutUsButtonList = new Array(); aboutUsButtonList.push({label:"History", action:"goto"}); aboutUsButtonList.push({label:"Clients", action:"goto"}); aboutUsButtonList.push({label:"Partners", action:"goto"}); productsButtonList = new Array(); productsButtonList.push({label:"Widgets", action:"goto"}); productsButtonList.push({label:"Toys", action:"goto"}); productsButtonList.push({label:"Power Tools", action:"goto"}); storeButtonList = new Array(); storeButtonList.push({label:"Order Online", action:"goto"}); storeButtonList.push({label:"Find a Store", action:"goto"}); storeButtonList.push({label:"Request Catalog", action:"goto"}); storeButtonList.push({label:"Track Shipment", action:"goto"}); storeButtonList.push({label:"Return Item", action:"goto"}); - Hm deleteAllButtonLists s lm bin mt cc button c to, c ngha l tt c cc menu trong 3 mng va to s bin mt v s ch xut hin mt mng ti mt thi im m thi. Hy tng tng ci menu ca chng ta trong Flash, khi a con tr n menu File th menu File x xung, nhng khi a sang Edit th menu File s thu li v menu Edit x xung Trc , chng ta phi c on code sau ch tng menu n cc mng menu con CODE

allButtonLists = new Array(); allButtonLists = [aboutUsButtonList,productsButtonList,storeButtonList]; Tip theo chng ta s vit hm deleteButtonList v deleteAllButtonLists CODE function deleteButtonList(buttons) { for (var i=0;i<buttons.length;i++) { buttons[i].mc.removeMovieClip(); } } function deleteAllButtonLists() { for(var i=0;i<allButtonLists.length;i++) { deleteButtonList(allButtonLists[i]); } } By gi hy chy th movie ca chng ta nh. Bn thy sao? Tuyt vi phi khng no Gi th 17: Lin kt v lin lc vi trnh duyt, Browser Navigation and Communication Khi thit k Flash, bn c 2 s la chn, c th nhng vo mt trang web hoc lm mt application c th t chy ring. Nu bn nhng vo mt trang web th movie ca bn c th lin lc vi trnh duyt bo cho trnh duyt cn phi lm g. Trong gi th 17, cc bn s hc c: - Cch load mt trang web - Tm hiu cch lin lc vi JavaScript - M mt ca s trnh duyt mi t movie - S dng JavaScript gi thng ip n movie - Lu thng tin ngi dng vo JavaScript cookies - To movie s dng JavaScript - Nhng cu lnh c bit cho nhng application t chy Load mt trang web Ngy nay th Flash c s dng rt nhiu trong cc website. N c s dng lm trang ch hoc l to nhng thanh lin kt (navigation bar) Cng c lc, chng ta cn load mt trang web mi t movie Flash. Cch n gin Bn c th load mt trang web mi bng cch s dng cu lnh getURL. N hot ng ging nh th <a href> ca HTML. Di y l mt v d khi nhn mt button th s load mt trang web mi thay th cho trang hin ti:

CODE on (release) { getURL("anotherpage.html"); }

v d trn th trang anotherpage.html s c load. Bn c th thay bng mt URL hon chnh (nh l http://www.yahoo.com) lin kt n mt website khc hoc ng dn tng i lin kt n nhng trang trong cng mt website. Khng cn s dng AS, chng ta cng c th to c lin kt nh vy bng cch t thuc tnh hypertext links ca TextField, ci ny tht ra ging ht nh l th <a href> ca HTML Cch nng cao Cch ny bn cng s dng hm getURL vi mt cch khc xc nh ni s load trang web ln l trong frame no hoc l trong window no. Nh chng ta bit th mi frame v mi window u c tn, chng ta s truyn tn ny vo i s th 2 ca hm getURL. Trong v d di y, trang web ca bn s c nhiu frame, trong c frame tn l Main, trang web mi s c load trong frame Main ny CODE on (release) { getURL("summary.html","Main"); }

Bn cng c th s dng on code trn load trang web vo window tn Main. Ngoi ra, bn cn c th s dng nhng i s c bit truyn vo thay cho tn: - _blank : m mt window mi v load trang web vo window - _parent : load trang web vo frame cha ca frame hin ti - _top : load trang web vo window c, khng k ang frame no m s thay th tt c cc frame trong window Nu bn mun thay i nhng thit lp ca window nh kch thc th bn phi s dng JavaScript. Chng ta s ni v vn ny sau Luyn tp: Lm thanh lin kt (navigation bar) By gi th bn kh nng lm mt thanh lin kt bng Flash s dng AS, nhng bn cn phi c thm nhng kin thc khc v HTML. Thanh lin kt ca chng ta s t frame bn tri ca trnh duyt, frame bn phi s cha ni dung. Movie lm bng Flash s cha mt s button lin kt sang cc trang web khc. - u tin chng ta s to mt trang HTML cha 2 frame, trang ny tn l

navigation.html CODE <HTML><HEAD> <TITLE>Flash Navigation Example</TITLE> </HEAD> <BODY BGCOLOR="#FFFFFF"> <FRAMESET cols="120,*"> <FRAME name="navigation" src="navbar.html" scrolling="no"> <FRAME name="content" src="content1.html" scrolling="auto"> </FRAMESET> </BODY> </HTML> - Trang HTML trn ch to ra 2 frame, trong mi frame s cha mt trang HTML khc. By gi chng ta s to 2 trang HTML . Chng ta cha cn phi lm trang HTML cho frame bn tri, v n s c to ra khi chng ta publish movie thnh HTML. Cn trang HTML trong frame bn phi s c nhiu thay i. By gi hy to 3 trang HTML n gin tn content1.html, content2.html, content3.html cha 3 dng ch n gin. CODE <HTML><HEAD> <TITLE>Content 1</TITLE> </HEAD> <BODY BGCOLOR="#FFFFFF"> Content 1 </BODY> </HTML> - By gi l cng vic lm vi Flash. To mt movie mi rng 100px, cao 400px. To 3 button v vit code cho cc nt lin kt n 3 trang content1.html, content2.html, content3.html tng t nh sau: CODE on (release) { getURL("content1.html","content"); } - Lu movie li vi tn navbar.fla - Publish movie ra thnh file html - Tip theo l a tt c cc file vo mt th mc. Cc file s l: navigation.html, content1.html, content2.html, content3.html, navbar.html, and navbar.swf. - Hy m trang navigation.html th xem nh

ActionScript v JavaScript Nu bn quen s dng JavaScript ri th bn s rt vui khi bit rng JavaScript c th lin lc c vi ActionScript. Tuy nhin, cch ny khng hot ng tt i vi tt c cc loi trnh duyt. Vic lin lc ny c xy dng trn 2 cng ngh. Mt l cng ngh LiveConnect c xy dng trong nhng phin bn trnh duyt Netscape trc phin bn 6.0. Cng ngh th hai l ActiveX dng lin lc gia Flash v Internet Explorer. Nhng nu bn ang thit k cho ngi dng s dng trnh duyt ca Windows th cch ny s rt tt. Gi thng ip n JavaScript Gi thng ip t ActionScript n JavaScript th ch cn vit code trong ActionScript nhng n cng s thay i ni dung trang HTML ca bn . Nu bn to file Flash bng cch chn FSCommand trong Publish settings, bn s to c mt file HTML c sa cha y nhn thng ip. Cng vic ca bn ch l thay th nhng ch c nh du Your code here bng phn JavaScript ca bn. hiu r hn cch n lm vic nh th no th chng ta hy cng nhau m x file html m Flash to ra nh u tin, hy ch n th OBJECT/EMBED, trong s c mt s phn chp nhn s lin lc. Tham s ID trong th OBJECT s ging vi tham s NAME trong th EMBED. Hai tham s ny s t tn cho movie ca chng ta trong trang web JavaScript c th gi n. Ngoi ra cn c mt tham s khc trong th EMBED, l tham s swLiveConnect cho php nhng phin bn Netscape trc phin bn 6.0 c th lin lc vi Flash bng cng ngh LiveConnect. CODE <OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/ [ic:cc]flash/swflash.cab#version=5,0,0,0" ID=flashmovie WIDTH=120 HEIGHT=120> <PARAM NAME=movie VALUE="17astojs.swf"> <PARAM NAME=quality VALUE=high> <PARAM NAME=bgcolor VALUE=#FFFFFF> <EMBED src="17astojs.swf" quality=high bgcolor=#FFFFFF WIDTH=120 HEIGHT=120 swLiveConnect=true NAME=flashmovie TYPE="application/x-shockwave-flash" PLUGINSPAGE="http: //www.macromedia.com/shockwave/download/ index.cgi?P1_Prod_Version=ShockwaveFlash"></ EMBED> </OBJECT>

Trc on code ca th OBJECT/EMBED s c mt on script. Phn u tin l mt hm JavaScript vi tn ca movie ID trong th OBJECT v ni tip vi _DoFSCommand. Nh v d trn th tn hm ca chng ta s l

flashmovie_DoFSCommand. Trong hm ny th chng ta s truyn d liu li cho movie. Khng may l Netscape . Internet Explorer v Internet Explorer nhn nhn movie ca chng ta khc nhau nhn movie vi tn truyn vo tham s ID (flashmovie), cn Netscape nhn movie vi tn l document.flashmovie. Hy xem on code di y xem nh: CODE <script LANGUAGE=JavaScript> function flashmovie_DoFSCommand(command, args) { if (navigator.appName.indexOf("Microsoft") != -1) { var flashmovieObj = flashmovie; } else { var flashmovieObj = document.flashmovie; } alert(command); alert(args); }

Trong Internet Explorer, Flash khng ch c th lin lc vi JavaScript m cn c th lin lc vi VBScript. on code di y c vit bng JavaScript thay cho on JavaScript trn:

CODE if (navigator.appName && navigator.appName.indexOf("Microsoft") != -1 && navigator.userAgent.indexOf("Windows") != -1 && navigator.userAgent.indexOf("Windows 3.1") == -1) { document.write('<script LANGUAGE=VBScript\> \n'); document.write('on error resume next \n'); document.write('Sub flashmovie_FSCommand(ByVal command, ByVal args)\n'); document.write('call flashmovie_DoFSCommand(command, args)\n'); document.write('end sub\n'); document.write('</SCRIPT\> \n'); } </SCRIPT>

Vy cn phn ActionScript phi lm sao y. Xin tr li l ch cn mt dng duy nht m thi

CODE fscommand ("alert", "This is alert 1.");

Nhn thng ip t JavaScript Nhn thng ip t JavaScript th c v d hn. Nhng bn phi nh rng t tham s ID trong th OBJECT v tham s NAME trong th EMBED, nh t ging tn nh. V cng nh t swLiveConnect=true trong th EMBED. By gi th sn sng truyn thng ip t JavaScript cho movie ri. Hy xem v d ny nh, trong v d ny th chng ta s s dng hm gotoFrame di chuyn movie sang frame th hai. CODE <FORM NAME="flashControlForm"> <INPUT NAME="gotoFrame1" TYPE=Button VALUE="Frame 1" onClick="window.document.flashmovie.GotoFrame(1);"> </FORM>

Chc chc n y cc bn ang t hi ti sao di chuyn sang frame th hai m li s dng gotoFrame(1), ng khng no? Bi v h m ca chng ta bt u t s 0 (zero-based). V vy, frame 1 s l 0, frame 2 s l 1, frame 3 s l 2 C hn 24 cu lnh trong Flash movie. Tuy nhin chng ta khng cn phi dnh nhiu thi gian tm hiu bi v nh ni trn th cch lin lc ny khng phi hot ng tt i vi tt c cc loi trnh duyt. Bn c th s dng hm GetVariable v SetVariable iu khin nhng bin trong timeline ca movie. Cu lnh Zoom dng ko dn movie. Hai hm isPlaying v percentLoaded dng kim tra movie no ang hot ng. Play dng play mt movie khi n ang ngng. Luyn tp: M window mi C l y l mt yu cu rt thng gp i vi nhng ngi s dng Flash. Bn c th lm c iu ny bng cch s dng hm getURL hoc JavaScript. Tuy nhin, s dng JavaScript s c rt nhiu c im m i v hay hn, bn c th t li nhng thuc tnh ca window. No, cng lm th nh: - To mt movie mi. - t vo movie mt button. - Chn on code sau cho button va to CODE on (release) { fscommand ("newwindow", "content.html"); } - Trong phn Publish Settings, chn publish ra file HTML cng vi Flash movie.

Trong phn HTML, nh chn vo mc Flash with FSCommand - Publish movie ca bn. - M file HTML m Flash va to bng mt trnh son tho no cng c, nh NotePad chng hn. Hy tm phn chn JavaScript, v chn on code sau vo: CODE if (command == "newwindow") { window.open(args,"","width=320,height=240,location=no,toolbar=no, menubar=no"); }

- To thm mt file HTML n gin na v t tn l content.html - M file HTML ca bn ra trong mt trnh duyt v nh l trnh duyt phi h tr JavaScript nha. Khi nhn vo button th mt ca s mi s xut hin, khng c toolbar, kch thc 320x240. - Vy cn i vi nhng trnh duyt khng h tr JavaScript th sao? n gin thi, s dng getURL . iu quan trng l cn phi cho Flash bit lc no s dng Flash, lc no s dng JavaScript. Quay tr li file HTML m Flash to, chn on code JavaScript sau vo cui on code ta chn vo lc trc CODE function initComm() { window.document.newWindowMovie.SetVariable("jsCommOK","OK"); }

on code trn s th t gi tr cho bin jsCommOK l OK. Nu trnh duyt c h tr JavaScript th jsCommOK s mang gi tr OK cn nu khng th bin jsCommOK vn l undefined. - chy hm initComm u tin th bn sa li phn BODY ca trang HTML nh sau:

CODE <BODY bgcolor="#FFFFFF" onLoad="initComm();">

iu ny c ngha l hm initComm s c gi ngay sau khi trang ny load xong. - By gi hy quay tr li file Flash ca bn, sa on script ca button thnh: CODE

on (release) { if (jsCommOK == "OK") { fscommand ("newwindow", "content.html"); } else { getURL ("content.html", "_blank"); } }

Luyn tp: To mt SlideShow c iu khin bi JavaScript Trong phn ny, chng ta s cng nhau lm mt file Flash khng c ActionScript m s c iu khin bng JavaScript. - To mt movie Flash mi vi 3 frame hoc nhiu hn. Ni dung ca mi frame th khng quan trng, bn mun g trong cng c nhng mt li khuyn l mi frame nn khc nhau chng ta theo di s thay i - t cu lnh stop() vo frame u tin - Publish ra file HTML - M file HTML ra trong trnh son tho vn bn - Truyn tham s ID trong th OBJECT v NAME trong th EMBED, c hai s mang gi tr l slideshow - Nh t swLiveConnect=true trong th EMBED - To 2 button trong file HTML bng on code sau: CODE <FORM NAME="flashControlForm"> <INPUT NAME="next" TYPE=Button VALUE="Next" onClick="nextFrame();"> <INPUT NAME="prev" TYPE=Button VALUE="Previous" onClick="prevFrame();"> </FORM>

- Mi button s gi mt hm. C hai hm s s dng TcurrentFame(/)bit ang frame th my, ri s dng gotoFrame di chuyn ti hoc lui. CODE <script LANGUAGE="JavaScript"> function nextFrame() { var frameNum = window.document.slideshow.TCurrentFrame("/"); window.document.slideshow.GotoFrame(frameNum+1); } function prevFrame() { var frameNum = window.document.slideshow.TCurrentFrame("/"); window.document.slideshow.GotoFrame(frameNum-1); }

</SCRIPT>

Cng vic tip theo bn cn nh khng: CHY TH i no Gi th 18: Gi thng tin cho my ch, Sending Information to the Server Cho n tn by gi, nhng movie chng ta lm c hu ht l ch chy mt mnh (stand alone). C ngha l n ch chy mt my khch (client-side) khng c s lin lc vi my ch (Server). Nn nh rng Flash cng c th gi tr thng tin cho Server ging nh form ca HTML. Vy th trong gi th 18 ny, chng ta s tm hiu v vn ny. Trong gi th 18, chng ta s hc: - Tm hiu v i tng LoadVars - To mt chng trnh server-side n gin - S dng Flash gi d liu v cho Server i tng LoadVars Rt may mn l chng ta c Flash MX, bi v trong nhng phin bn Flash trc y, mun lm iu ny th chng ta phi lm nhng movie clip rt kh khn. i vi Flash MX, chng ta c th s dng i tng LoadVars. i tng LoadVars bao gm mt tp hp cc cu lnh v nhng bin c bit gi d liu cho Server ging nh post form trong HTML. Chng ta c th to i tng ging nh to nhng i tng khc. Hy xem gi th 12 nh! Ly d liu Di y l mt v d. Thay v s dng new Object() bng new LoadVars. Sau th i tng LoadVars mi s c to. CODE myVars = new LoadVars();

Vi i tng LoadVars, chng ta c th lm c 2 vic, l gi v ly d liu. ly d liu, chng ta s dng cu lnh load. Ci chng ta cn y l mt ng dn n ni cha d liu: CODE myVars.load("myURL.txt");

V d trn hot ng ging nh cu lnh LoadVariables trong gi th 10. Tuy nhin, cu lnh LoadVariables ch ly v thay th d liu trong cng mt level vi cu lnh ny m thi. Hy tng tng, chng ta c mt file cha d liu nh sau: CODE name=George&ID=47

Gi d liu Vi i tng LoadVars, chng ta cng c th gi d liu i ln Server. Trc ht, chng ta a d liu vo i tng LoadVars, ri sau s dng cu lnh send gi d liu i. CODE myVars = new LoadVars(); myVars.name = "George"; myVars.ID = 47; myVars.send("serverprogram.cgi", "_self");

on code trn s to mt i tng LoadVars mi tn l myVars, ri a hai thuc tnh vo i tng myVars. Sau , gi d liu i ln Server, chnh xc l n chng trnh CGI tn l echo.cgi. Cu lnh send cng hot ng tng t nh trong form ca HTML. _self l Target, chng ta c th thay th bng cc gi tr khc nh c bit. Nhng cn mt cu lnh na l sendAndLoad. Cu lnh ny c ghp cu lnh send v load. C ngha l i tng LoadVars s gi d liu ln Server, sau s ly gi tr tr v. CODE mySendVars = new LoadVars(); myLoadVars = new LoadVars(); mySendVars.name = "George"; mySendVars.ID = 47; mySendVars.sendAndLoad("serverprogram.cgi", myLoadVars);

Trng thi ly d liu Hy nh l cu lnh send v load s khng ly d liu ngay tc th. C th phi i trong mt thi gian ngn hoc di. V vy, chng ta s c nhu cu theo di trng thi

ly d liu. Chng ta khng th s dng d liu ngay lp tc sau cu lnh load hoc sendAndLoad, m cn phi kim tra xem ly d liu xong cha. Cch n gin nht l dng mt movie clip lp i lp li kim tra. Cng c th s dng getBytesLoaded v getBytesTotal vi nhng d liu ln. Di y l v d kim tra vic ly d liu: CODE myLoadVars.onLoad = function(success) { if (success) { gotoAndStop("load done"); } else { gotoAndStop("load problem"); } }

Nh trong on code trn th i s success s nhn mt trong hai gi tr true hoc false cho bit vic nhn d liu xong hay cha Gi th 19: Dng XML vi Flash Cng ngy XML cng tr nn thng dng trong cc ng dng tin hc, v ngay c trong Flash, vy trong gi ny mnh s hc cc iu sau:

XML cn bn i tng XML trong Flash Phn tch v x l XML theo phung pho quy (recursive)

XML Cn bn XML ch n gin l mt vn bn cha d liu. XML tng t nh HTML, cng dng cc th. Tuy nhin, XML khc HTML l cc th HTML c n nh trc cho cc chc nng khc nhau, cn XML th khng. Vi XML, bn c th t to cho mnh cc th theo bn ph hp cho mc ch ring ca bn. C th to mt XML file vi 1 trnh bin tp vn bn (nh Notepad, Textpad ...) n gin hay l cc software chuyn vit v XML (XMLSpy, Epic ...) Vi Flash MX, bn c th d dng truy cp c d liu tr trong XML, v i tng XML ca Flash s t ng phn tch vn bn XML ny. Trong VNFX c rt nhiu bi vit v XML (v d nh bi gii thiu XML ca FlashLee) cc bn c th tham kho thm

i tng XML i tng XML trong Flash gm c nhiu hm v c tnh dng gip bn ly v phn tch d kin trong XML file mt cch d dng. Bc u tin khi dng i tng XML l to mt phin bn XML trc: CODE myXML = new XML() Phn tch v s l vn bn thnh XML Sau khi to phin bn XML trn, hin gi phin bn ny vn cha c g c, tuy nhin bn c th nhanh chng to ra mt ti liu XML bng cch dng lnh parseXML. Lnh ny s nhp mt chui vn bn, v phn tch v x l n thnh 1 ti liu XML. CODE myXML = new XML(); myXML.parseXML("<user><name>Gary</name><ID>47</ID></user>"); Hay bn c th vit trc tip nh sau CODE myXML = new XML("<user><name>Gary</name><ID>47</ID></user>"); Nu m chui c nhp vo khng th to thnh XML hon chnh th bn c th dng c tnh status kim tra. CODE myXML = new XML("<user><name>Gary</name><ID>47</user>"); trace(myXML.status); Output window s cho ra -9 khi chy on code trn. -9 c ngha l thiu th ng (end tag), v mnh thiu th </ID>. Nu output window cho ra -10 th bn thiu th m (start tag), v 0 c ngha l mi vic hon chnh Ly d liu t i tng XML C nhiu hm lm vic ny. V d, bn c th dng firstChild ly nt (node) u tin ca i tng XML: CODE myXML = new XML("<user><name>Gary</name><ID>47</ID></user>"); trace(myXML.firstChild); Output window s cho ra <user><name>Gary</name><ID>47</ID></user>. V y chnh l nt u tin ca i tng XML. Nu chng ta i xu vo 1 ln na vi firstChild

CODE myXML = new XML("<user><name>Gary</name><ID>47</ID></user>"); trace(myXML.firstChild.firstChild); K ny output window s cho ra <name>Gary</name>, v phn t name l nt u tin ca user Ngoi cch trn ra, cn 1 cch na l dng childNodes, l ma trn ca ca cc nt. Cng mt v d trn nhng c th dng nh sau vi chidlNodes CODE myXML = new XML("<user><name>Gary</name><ID>47</ID></user>"); trace(myXML.childNodes[0].childNodes[0]); Di nt name, chng ta cn mt nt na di nt name, v c th dng cch trn ly nt : CODE myXML = new XML("<user><name>Gary</name><ID>47</ID></user>"); trace(myXML.childNodes[0].childNodes[0].childNodes[0]); v output window s cho ra ch Gary. y l nt vn bn (text node) ca nt name. Nhn th tng y l tn cng ri, khng th xung su hn c na, v y l nt cui cng, nhng nu bn mun ly gi tr ca n nh l chui vn bn th bn c th i thm 1 bc na nh sau: CODE myXML = new XML("<user><name>Gary</name><ID>47</ID></user>"); trace(myXML.childNodes[0].childNodes[0].childNodes[0].nodeValue); Nu bn mun ly ci ID trong nt th 2 th thay i nh sau: CODE myXML = new XML("<user><name>Gary</name><ID>47</ID></user>"); trace(myXML.childNodes[0].childNodes[1].childNodes[0].nodeValue); * gii thch thm v on code trn, nu bn ch dng childNodes th kt qu s l 1 i tng, cn nu bn dng nodeValue th s ra chui. Bn c th th bng on code mnh vit di y CODE myXML = new XML("<user><name>Gary</name><ID>47</ID></user>"); myVar1 = myXML.childNodes[0].childNodes[0].childNodes[0]; myVar2 = myXML.childNodes[0].childNodes[0].childNodes[0].nodeValue; trace ("myVar1: " +typeof(myVar1)); trace ("myVar2: " +typeof(myVar2)); v output window s cho bn thy r, ci no law i tng v ci no l chui.

T to XML t "tay trng" Khng bit dch cu ny sao cho ng ngha vi "Creating XML from Scratch". nh dch nh trn vy. Cc cch to XML trn u t 1 chui vn bn, nhng nu nh bn khng c 1 chui vn bn no trc th sao? Bn c th dng createElement to ra cc nt mi v dng createTextNode to ra cc text node. Tuy nhin 2 lnh trn ch to ra nt ch khng thm vo trong XML, vy bn phi thm n vo bng lnh appendChild. minh ho, chng ta s to mt XML tng t nh trn nhng vi cc lnh va cp. CODE myXML = new XML(); newElement = myXML.createElement("user"); myXML.appendChild(newElement); newElement = myXML.createElement("name"); myXML.childNodes[0].appendChild(newElement); newText = myXML.createTextNode("Gary"); myXML.childNodes[0].childNodes[0].appendChild(newText); newElement = myXML.createElement("ID"); myXML.childNodes[0].appendChild(newElement); newText = myXML.createTextNode("47"); myXML.childNodes[0].childNodes[1].appendChild(newText); Nu bn mun thay i gi tr ca text node, th bn ch cn dng nodeValue CODE myXML.childNodes[0].childNodes[1].childNodes[0].nodeValue = 53;

Thuc tnh Cc thnh phn ca XML c th c thuc tnh (attribute). Trong y mnh gp rc ri v cch dch attribute v property, c 2 ch ny ting vit u dch l thuc tnh, c tnh ... m ting anh th khc tht rc ri vy mnh xin c dng ting Anh nhe. Attribute gm c t kho v gi tr ca t kho , v dng nh r mt thnh phn hn. V d, on XML di dy vi attribute type lm r ngha ca thnh phn name hn, ("alias" l b danh) CODE <user> <name type="alias">Gary</name> <ID>47</ID> </user>

Nu bn mun a on code trn vo trong XML object th phi i du " (ngoc kp) thnh du ' (ngoc n) CODE trace(myXML.childNodes[0].childNodes[0].attributes.type); Cn mt cch na cng cho ra kt qu nh trn l dng [] CODE trace(myXML.childNodes[0].childNodes[0].attributes["type"]); V bn c th thay i gi tr ca attribute, hay thm attribute mi nh sau: CODE myXML.childNodes[0].childNodes[0].attributes["type"] = "real"; Vi cu trn, nu attribute type cha c th n s c to (trong sch cc on code trn tc gi vit ln gia type v alias, nu bn so snh gia sch v bi ny th s thy s khc bit, v c th cc source file cng s khng chnh xc, vy cc bn cn kim tra li) Khc vi node, attribute khng th truy cp bng ma trn (array) nn bn khng th dng cc lnh nh length hay dng [] vi index number. Nhng bn c th dng vng lp for ... in truy cp tng attribute ca node. CODE myXML = new XML("<user><name type='alias' validity='verified'>Gary</name> <ID>47</user>"); for(attr in myXML.childNodes[0].childNodes[0].attributes) { trace(attr+": "+myXML.childNodes[0].childNodes[0].attributes[attr]); } output window s cho ra: alias v verified Thm vi AS v XML Bn cng cn bit thm mt s iu v i tng XML. Nht l im sau, bt c mt phn no ca i tng XML cng c th l mt i tng XML ring bit. V d bn c th ly ci node u tin ca i tng XML v quy thnh mt bin CODE myXML = new XML("<user><name>Gary</name><ID>47</user>"); thisUser = myXML.childNodes[0]; thisUserName = thisUser.childNodes[0]; thisUserNameText = thisUserName.childNodes[0].nodeValue; thisUserID = thisUser.childNodes[1]; thisUserIDText = thisUserID.childNodes[0].nodeValue;

Bn c th bit c s node trong trong mt node khc bng thuc tnh length ca childNodes. V d, user node c 2 node trong, vy bn c th bit c bng vi on code sau: CODE myXML = new XML("<user><name>Gary</name><ID>47</user>"); trace(myXML.childNodes[0].childNodes.length); Ngoi vic c th tm c gi tr ca mt node vn bn bng nodeValue, bn c th bt c tn ca thnh phn (hay th) vi nodeName. V d bn c th ly c tn ca thnh phn (th) u tin ca user l name nh sau: CODE myXML = new XML("<user><name>Gary</name><ID>47</user>"); trace(myXML.childNodes[0].childNodes[0].nodeName); Bn c th bit c mt node l thnh phn ca XML hay l mt node vn bn (text node) bng vi thuc tnh nodeType. Nu nodeType l 1 th c l 1 thnh phn ca XML v c th c nhiu thnh phn trong node , nu l 3 th node chnh l node vn bn. Gi th 20 : Printing Khng phc tp nh trnh duyt hoc Server Cominucation, in n l mt cch m FLash truyn d liu ra ngoi. Kh nng in n ca FLash l rt hu ch v n cho php chng ta xy dng nhng vn bn m ngi s dng c th in ra ni dung t file flash ca bn.y thng l la chn tt hn da vo hm in n ca trnh duyt . Trong gi th 20 ny chng ta s : - Hc cch thit lp movie ca bn cho vic in n - Hc cch s dng cc lnh in - To ra mt biu mu c th in c I> Thit lp cho movie c kh nng in: 1-Bn cn lm mt vi vic vi movie trc khi c th s dng c cc lnh in ca Action Script. Tht khng may,nhng lnh in ny khng c linh hot lm. Nu s dng chng m khng c s chun b , Flash s in ra ton b ni dung ca movie, tng frame mt. V thng l iu m bn khng mun. C khi bn ch mun in duy nht frame hin ti, hoc mt frame bt k trong mt movie ring, hoc mt on gm nhiu frame. Nhng him khi bn mun in ht ton b. 2 - t tn cho frame Bn s ch nh nhng frame c in bng k hiu "#p" . Nu k hiu khng c t ln frame no th Flash s in ra ton b movie ca bn. Ngc li, nu bn t t hai k hiu tr ln trong movie ca bn th flash s in ra tt c nhng frame . Hnh 1 cho ta thy timeline vi hai frame c t k hiu in. Ch rng, tt c nhng frame c cha k hiu in ny s c t mt layer ring. Theo cch , bn c th t c nhiu k hiu trn nhiu frame. V n cng thun tin hn khi bn khng mun s dng k hiu "#p" nh mt label tht cho keyframe.

*Ch : Khi bn t t hai k hiu in tr ln, khi test movie, Flash s xut hin li cnh bo : "WARNING : Duplicate layer.." l iu ri ro c th xy ra, nhng cng s khng nh hng n movie ca bn tr phi bn s dng label "#p" trong cu lnh "gotoAndStop" hoc nhng lnh tng t.... 3- Ln k hoch in Bn cn phi suy ngh v ln k hoch cho movie ca bn khi mun movie c kh nng in. V khng th ch in mt frame hin ti nn bn cn to ra nhng frame c kh nng in. Ch rng mi th tn ti trn movie ca bn s c in ra. N bao gm c nt Print ( khi nhn vo s thc hin lnh in), nu trong movie c tn ti. V vy chng ta cn phi c mt frame cha nt Print, v mt frame khc tng t nhng khng c nt Print cng nh cc yu t khgn cn thit khc. Frame th hai ny s c dt nhn l "#p" Bn c th b tr bng cch s dng timeline chnh. V d bn c mt menu v mt nt Prin trn hai layer ring bit, m cn c trong ni dung ca biu mu in. Nhng layer ny nu bn khng mun in ra th khng cn ko chng sang frame c nhn "#p" hai hnh sau th hin iu ny. Hnh th nht,l frame m ngi dng s thy xut hin trn trang web. N cha ni dung. nt Print v menu

Ngc li, trong hnh hai l ni dung m ngi duyt web khng thy c, t nht l trn mn hnh. Frame ny c t tn l "#p" bn c th thy trn timeline.Layer Buttons khng s dng keyframe ging nh frame 1. Ngoi vic chn nt Print khng oc in ra, c th thm vo frame ny mt s thng tin s c in ra nh a ch, ...

By gi bn bit lm th no chun b cho mt biu mu in, by gi cng hc AS cn thit C hai lnh in chnh c s dng. Chng c mt khc bit rt nh, nhng v cn bn l hot ng ging nhau. 1- Print Lnh th nht l QUOTE Print Lnh ny bao gm hai tham s. Tham s th nht l i tng in. Thng l timeline chnh, hoc "_root". Bn cng c th s dng "this". Tuy nhin, nu bn khng mun in nhng frame trong movie, bn c th s dng tham chiu ti movie . Tham s th hai l mt trong ba tu chn sau : QUOTE bframe

II> Cc cu lnh

QUOTE bmovie

QUOTE bmax Cc tham s ny gip FLash c th co dn vn bn in theo ca ngi s dng. Flash c th co dn vn bn in ti kch thc ca trang giy m khng bp mo vn bn. V d nu frame c in c kch thc 550x400, th chiu ngang s c phng to ti kch thc 550px chiu dc c th s c scale theo t l. Khi s dng tu chn "bframe", tng frame s t scale lp y kch thc ca trang . Nu frame th nht c ni dung vi kch thc l 550x400 nhng frame th hai ch cha ni dung c kch thc 275x200, khi frame th hai s t ng scale gp i kch thc ban u. khi s dng tu chn "bmax", Flash s kim tra ton b cc frame c in xc nh xem frame no c kch thc ln nht. Cc frame cn li s scale da trn kch thc ca frame ln nht, tnh theo t l. iu ny ta nn cc frame c kch thc t l vi nhau V d, frame ln nht c kch thc 550x400, v n lp y trang in. Frame khc ch c kch thc 275x200, n ch chim mt na trang in. Tu chn cui cng l "bmovie", trng hp ny bn cn phi lm thmm mt vic nh na, l to ra frame mi c cha mt khung. Khung ny s xc nh kch thc ln nht c in ra i vi vn bn (bng kch thoc ca khung). Bn phi t tn frame ny vi k hiu "#b". V flash s s dng kch thc ca khung scale ton b cc frame cn li. Nu c mt phn vn bn ny nmg ngoi khung in chng s khng c in ra. Sau y l v d v lnh "Print" : QUOTE on(release) { print(this,"bframe"); } Nh bn thy, tu chn c coi nh mt chui v c t trong du "" 2-PrintAsBitmap Cu lnh ny lm vic tng t nh lnh Print vi hai tham s tng t. iu khc bit l lnh Print s gi cc i tng ho v font ch ti my in. Sau , my in s xy dng li cc vector v ni dung in ra. Ngc li, PrintAsBitmap s chuyn ton b ni dung thnh mt nh bitmap ln v gi ti my in. im thun li nht ca PrintAsBimap l trong sut ca vn bn cng c in ra. Nu bn c mt i tng ho bn trong sut, chc c u im chn bn s cn n chc nng in ny, ng thi n cng hot ng tt vi nhiu loi my in hn. Lnh in chnh l vn bn c in ra c tnh thm m cao, ng cong smooth hn v ch r rng hn khi c in ra. N cng nhanh hn khi in qua mng.

Nguyn tc chung nht l s dng lnh PrintAsBitmap khi bn tht s chc chn kt qu s ging nh ni dung hin th trn mn hnh. S dung Print khi vn bn khng cn chnh xc cao hoc khi bn xy dng movie iu khin mi trng nh mng ni b. Ch : Nu bn se dng movie qua internet, lnh in ch lm vic khi tt c cc frame trong movie c load xung.

Thao tc : To biu mu in

Mt iu m ngi dng ght nht trn mt website l mt biu mu m chng ta phi in ra, in vo, ri gi i . Chng ta ang s dng my tnh, t nhin li phi i kim ci bt trn bn vit ? V vy ti sao chng ta khng to ra biu mu cho php in thng tin vo, sau c in ra vi y ni dung c nhp vo. Chng ta s lm v d n gin ny, v s thy chng thun tin hn rt nhiu so vi mt bit mu html yu cu ngi s dng in ra ton b ni dung ca site. Bn hon ton c th i khin nhng g s c in ra, v vy nhng th linh tinh trn trang web c th c b qua v nhng yu t mi nh email address c th c thm vo. 1- To mt movie mi 2- To ra cc trng nhp d liu (v d tn, tui, a ch, gii tnh, email...) (xem hnh) sau t tn layer ny l CONTENT

3-t tiu cho trng ln pha trn nhp liu 4-To thanh tiu cho Form. Ch ,hai lo i tiu ny s c t hai layer ring bit . 5-To nt Print v t trong layer tn l Buttons 6-CHn on m sau cho button : QUOTE on (release){ print (this, "bmax"); } 7- Thm Frame th hai cho movie, ko Title Bar v Content sang frame 2 To blank keyframe cho layer Buttons v Titles, v chng s c ni dung khc trong frame th hai 8- Trong frame th hai ca layer Title, t mt tiu khc. V d, nu frame th nht l "Fill out that application" th frame th hai ch cn l Appilcation

9- Sau , biu mu sn sng in vo. Tiu c s bin mt, bn c th nhn thy tiu mi trong hnh..

10- Thm mt layer mi tn l Signature. t mt keyframe frame th hai ca layer ny. Thm ng ngn cch v a ch trong frame ny. Nu lm ng th frame 1 ca layer ny s khng c g, ni dung ch tn ti frame 2 11- Thm layers tn Frame Labels . t trong hai keyframe. Keyframe th 2, chng ta t k hiu "#p" . Keyframe th nht chn code QUOTE stop(); Test movie ca bn. Bn hy in vo biu mu , v n nt Print. Frame th hai s c in ra vi tiu "Application", ch k, v a ch... Tm tt

in c cc frame trong mt movie bn cn phi t label cho chng l "#p". Bn c th t tn cho mt hoc nhiu frame trong cng mt movie. Mi th trong frame "#p" s c in ra. Bn c th trang tr tu thch i vi biu mu c in ra, tr nhng yu t nh menu. Bn c th s dng lnh "Print" in cc frame s dng vector shape gi ti my in. Tuy nhin, nu cn in nhng i tng ho bn trong sut hoc chc chn rng tt c nhng biu mu in ra ging nhau, bn c th s dng lnh PrintAsBitmap Gi th 21: S dng component, Using component ActionScript cho cc Component i km Flash C 7 component gn lin km theo chng trnh Flash: CheckBox, ComboBox, ListBox, PushButton, RadioButton, ScrollBar, ScrollPane. thm mt component vo movie ca bn, bn c th click p ln component trong bng Component, hoc nhn v ko mt component vo stage. PushButton Click v ko component PushButton vo stage s to mt instance (th hin) mi ca component PushButton trn mn stage. Khi bn thm mt s phn t Library vo trong movie. Rt may l cc phn t ny c ct trong cc folder rt gn trong Library (th vin), v th chng cng khng nh hng my n cng vic ca bn. Component PushButton trn stage trng rt n gin: ch l mt khung vi t "PushButton" gia. Bn nh bt tnh nng Live Preview (xem trc) ca Flash bng cch chn Control-->Enable Live Preview. Sau khi PushButton trn stage, bn c th click chn n v m bng Properties i tn. Hai thng s c th thit t cho component PushButton l Label (nhn): ta i thnh Press Me ! v Click Handler (qun l s kin nhn nt): y l tn ca hm c gi khi nt c click. Hm ny phi nm trong cng Timeline vi nt; v th nu nt t level gc (root level), hm phi trn Timeline chnh. Ta thit t Click Handler thnh buttonPressed (nt c nhn). Ngoi ra bn t cho component mt instance name (tn minh ha) l testButton (kim tra nt). By gi tt c cng vic phi lm l vit hm buttonPressed. Di y l mt v d n gin. Hm ny ch gi mt vi dng text ra ca s Output: ActionScript function buttonPressed(buttonInstance) { if (buttonInstance == testButton) { trace("Test Button Pushed."); } else {

trace(buttonInstance._name); } } Mi hm qun l nt s chuyn mt tham s: mt tham chiu n nt gi hm. V th bn c th kim tra instance ny c phi c tn l testButton hay khng. Hm v d trn s chuyn thng bo "Test Button Pushed" nu nt c nhn l testButton, v in ra tn minh ha ca nt nu nt b nhn khng phi l testButton. Bn c th xem v d mu ny trong movie 21pushbutton.fla. CheckBoxes Component CheckBox (hp kim) tng t nh ci m chng ta to gi 15 (anh em dch sau nh). to mt CheckBox component, click p vo n trong bng Components, hoc click v ko n ln trn stage. to mt instance th hai, m folder Flash UI Components trong th vin Library v ko component CheckBox ln trn stage. Trong v d movie 21checkboxes.fla, ti to 3 hp kim (CheckBoxes). Nu bn chn mt component trong chng v m bng Properties, bn s thy n c nhiu thng s hn so vi component PushButton. B sung vo cc thng s Label v Change Handler, gi y bn c c Initial Value (gi tr ban u) v Label Placement (sp xp nhn). Thng s Initial Value l true hoc false, ty thuc vo vic bn mun hp kim ban u c nh du hay khng. Thng s Label Placement cho php bn sp xp cc nhn bn phi hoc tri (right hoc left) so vi kim. Right l sp xp mc nh. Nu bn chuyn thnh left, dng ch ghi nhn ca hp kim s xut hin bn tri ca . Trong movie mu, ti t tn cho 3 instance CheckBox l option1, option2, v option3. Ti cng t nhn (label: phn text bn cnh kim) l Option One, Option Two, v Option Three. Thng s Change Handler ca mi instance c i thnh changeOptions. Ti t hm changeOptions trong timeline chnh. Hm ny s c thc thi khi no mt trong cc hp kim CheckBox c click vo. N s gi tn v trng thi mi ca CheckBox ra ca s Output. ActionScript function changeOptions(checkBoxInstance) { trace(checkBoxInstance._name+": "+checkBoxInstance.getValue()); } Trong 21checkboxes.fla, ti cng thm vo mt component PushButton. Nt ny c t tn l doneButton v s gi hm buttonPressed. Hm ny s lp i lp li vi tt c cc CheckBox v gi trng thi ca chng (c nh du hay cha) ra ca s

Output. ActionScript function buttonPressed(buttonInstance) { if (buttonInstance == doneButton) { trace("Option One: "+option1.getValue()); trace("Option Two: "+option2.getValue()); trace("Option Three: "+option3.getValue()); } } Thay v gi cc kt qu ra ca s Output, hu ht bn s mun s dng chng trong cc dng khc. V d, bn c th t chng trong mt i tng LoadVars chng c th gi ti mt server. RadioButtons RadioButtons ging nh CheckBoxes, ngoi tr vic chng c sp xp thnh cc nhm. Ti mt thi im, bn ch c th chn mt nt RadioButton trong mt nhm. File mu 21radiobuttons.fla c ba component RadioButtons. Nu bn chn mt trong nhng nt v m bng cc thuc tnh (Properties panel) cho nt, bn s nhn thy component ny c nhiu thng s hn so vi cc component CheckBox hay PushButton. Thm vo cc thng s bn thy trong component CheckBox l hai thng s Group Name (tn nhm) v Data (d liu). Thng s Group Name xc nh xem RadioButton thuc v nhm no. Trong movie mu, c ba RadioButtons u thit t thng s ny l firstGroup. Nu c mt nhm nt th hai vi mt tn khc, th hai nhm ny c xem l c lp vi nhau khi quyt nh RadioButton no c bt. Thng s Data l ty chn v bn c th s dng trong cc on m ca mnh. Bn c th truy cp (access) n bi hm getData(). Bn c th lu tr cc lnh m on m ca bn thc thi khi nt radio c chn. Trong movie mu, ba RadioButtons c t tn l choice1, choice2, v choice3. Nhn ca ba nt ny l Choice One, Choice Two, v Choice Three. Vic xc nh xem ngi dng chn nt radio no s c thc hin khi PushButton trong movie c click. Sau PushButton s chy on script ny quyt nh xem la chn no c thit lp. on script s lp i lp li vi c ba nt tm kim mt nt tr v true t hm getState(). iu ny ngha l nt RadioButton c bt. ActionScript function buttonPressed(buttonInstance) { if (buttonInstance == doneButton) { var choice = "none";

for(i=1;i<=3;i++) { if (this["choice"+i].getState()) { choice = this["choice"+i]._name; } } trace("Choice: "+choice); } }

ListBox Mt ListBox (hp danh sch) l mt phng php n gin cho php ngi dng la chn mt hoc nhiu ty chn. Mt ListBox c th t nh mt thit lp ca CheckBoxes hoc RadioButtons. N c bit hu ch khi bn c nhiu la chn nhng khong trng trn mn hnh c hn. Mt khung danh sch trong nh mt trng text cun--trn thc t l nh vy. Mi dng tng ng vi mt la chn ring bit ca ngi s dng. Nu c nhiu la chn hn vng m khung danh sch c th hin th th ngi dng c th cun ln v cun xung xem ht cc mc trong danh sch. Khi bn to mt instance mi ca component ListBox, bn phi thit t thng s Select Multiple (la chn nhiu dng) ca n. Nu tham s ny l true, ngi dng c th dng cc phm Shift, Command, hoc Ctrl la chn nhiu hn mt dng. Nu l false, mi ln bn ch c th chn c mt dng. Thm vo , bn phi thit t thng s Labels (nhn). Tuy nhin, y khng phi l mt gi tr n m l mt mng cc gi tr. Flash c mt giao din c bit (special interface) cho vic nhp cc gi tr ny. Khi bn click trn tham s Labels trong bng Properties, bn s bt gp mt hp thoi cho php bn nhp vo mt mng cc mc (item) cho cc thng s khc. Bn cng c mt tham s Data (d liu) to mt mng d liu. Thng s Data ny, ging nh thng s data dng vi cc nt radio, cho php on m ca bn ly thng tin b sung v cc la chn m ngi dng chn. Tuy nhin, thng s ny khng bt buc phi c. Trong movie mu 21listbox.fla, ti t mt component ListBox vi ba la chn trn mn hnh. Chng c thit t l c th chn nhiu dng. Khi ngi dng click ln trn mt dng, hm listBoxChange s c gi. iu ny c xc nh bi thng s Change Handler ca n. Hm ny cho bn bit dng no (la chn no) va c chn: ActionScript function listBoxChange(listBoxInstance) { trace(listBoxInstance.getValue()); }

Trong movie mu ny cng c mt component PushButton. Khi n c click, n s thc thi hm ny. N s dng hm getSelectedItems() ly mt mng cc la chn (choices) chn trong list box. Mi mc chn trong mng l mt i tng vi mt thuc tnh label v data. V chng ta khng s dng cc thuc tnh data ca hp danh sch (list box), nn thay vo chng ta s ly cc nhn (label). ActionScript function buttonPressed(buttonInstance) { if (buttonInstance == doneButton) { items = myListBox.getSelectedItems(); for(var i=0;i<items.length;i++) { trace(items[i].label); } } } Bn cng c th thm hoc bt cc dng t list box bng cch s dng ActionScript. V d, addItem s thm mt la chn b sung vo list box. ActionScript myListBox.addItem("Choice Four"); Bn c th dng addItemAt, removeItemAt, v replaceItemAt thay i list box bi ActionScript. ComboBox Mt combo box ging nh mt menu ko xung (pull-downl menu) ngi dng cng c th g vo mt gi tr. May thay, bn cng c th tt ty chn hiu chnh gi tr. Khi combo box nh mt menu pull-down bnh thng. Thng s lm i u ny l Editable (c th hiu chnh) trong hp thoi Properties. B sung cho tham s , bn cng c th cung cp cc mng cha nhn (Labels) v d liu (Data). Mt thng s khc ca combo box l Row Count (s dng). Cc combo box c th nh nh cc list box. Khi ngi dng click vo, chng s tri rng thnh mt danh sch cc la chn. Nu s la chn vt qu gi tr Row Count, mt thanh cun s xut hin bn phi cho php ngi dng cun ln xung la chn. C bn mt combo box c th c 3 trng thi. Khi khng hot ng n thu nh thnh mt dng. Khi click vo n, combo box s tri rng thnh danh sch tu chn, nu s la chn ln hn s dng c th hin th th xut hin thm thanh cun. Khi mt ngi dng chn mt la chn mi trong combo box, b qun l Click Handler s c gi. Di y l mt hm n gin cho bn bit nhn ca combo box

chn: ActionScript function comboBoxChange(comboBoxInstance) { trace(comboBoxInstance.getValue()); } Bn cng c th dng getSelectedIndex() ly ch mc (tnh t 0) ca mc chn. Movie mu 21combobox.fla l mt v d v component ComboBox. ScrollPane Hai component tip theo khc hn so vi 5 component trn. Chng khng dng cho php ngi dng la chn, nhng dng hin th lng thng tin ln trong cc khong nh (cun m l). Component ScrollPane ( cun) gm c mt thanh cun dc, cun ngang v mt vng hin th hnh ch nht. Thng s chnh ca component ny l Scroll Content (cun ni dung). y l tn lin kt (Linkage name) cho mt movie clip. Khi bn chy movie, movie clip c copy t Library v t vo vng hin th ca cun. Sau cc thanh cun s cho php ngi dng nhn thy cc phn khc nhau ca movie clip. Bn c th xem v d trong file 21scrollpane.fla. Nu bn thit t thng s Drag Content l true, ngi dng cng c th click vo trong vng hin th v ko hnh trong chy. Cc thanh cun cng thay i khi bn ko ni dung trong cun (chnh l ci movie clip hin th trong ). Mc d component ScrollPane khng i hi bt k ActionScript no lm vic, nhng c rt nhiu hm m bn c th dng xc nh xem phn no ca movie clip ang c xem hoc thay i chiu rng (width) v chiu cao (height) ca . Bn cng c th dng bng Properties thay i chiu rng v chiu cao ca cun. Khi bn lm vic , cun trng b mo m trong Flash, nhng no star where, n s ngon lnh ngay khi bn chy movie. Mt lnh ActionScript rt hu ch l loadScrollContent . Lnh ny s dng mt a ch URL v hin th mt movie clip ngoi vo trong cun. ActionScript myScrollPane.loadScrollContent("myMovieClipFile.swf"); cun c th c dng nh mt trnh duyt hnh nh. ScrollBar

Component cui cng l ScrollBar. Component ny thm cc thanh cun vo trng text. Bn c th dng component ny m khng cn dng bt k code ActionScript no. Ch vic ko v th mt component ScrollBar vo mt trng text (text field), t n s thm vo trng text. Component ScrollBar c t thuc tnh Actionscript c th s dng c. V d, bn c th s dng getScrollPosition() ly v tr cun hin ti v setScrollPosition() thay i n. Thc hnh vi Components By gi chng ta s phi hp 5 component khc nhau to mt form nhp d liu: CheckBox, RadioButton, ComboBox, ListBox, v PushButton components. To mt Flash movie mi. To ba component CheckBox. t tn cho chng l checkbox1, checkbox2, v checkbox3. Nhn ca chng l: Macintosh, Windows, Linux. To ba component RadioButton. t tn cho chng l radiobutton1, radiobutton2, v radiobutton3. Nhn ca chng ln lt l ... nh trn To mt ComboBox component. t tn cho n l combobox. Thm mt vi nhn (label) vo ngi dng c th chn la. To mt ListBox component t tn l listbox. Thm bao nhiu nhn vo tu bn. ng lo lng v th t ca chng v chng ta s sp xp li sau. Thit t thng s ListBox Multiple Selections thnh false. Dng bng Properties to cho khung danh sch (list box) rng 200 v cao 200 pixel. Thm mt PushButton component. t cho n nhn l Done v thng s iu khin Click Handler l buttonPressed. Thm dng sau vo trong frame script. N s sp xp li nhn ca cc mc trong component ListBox. ActionScript listbox.sortItemsBy("label","Asc"); Lnh sortItemsBy lm vic rt tt vi component ComboBox. Bn c th dng "label" hoc "data" cho thng s u tin. iu ty thuc vo nhn (label) hay cc trng d liu (data) s c s dng sp xp. Thng s th hai c th l "Asc" (sp xp theo th t tng dn) hoc "Desc" (gim dn). Component PushButton s gi hm buttonPressed. Chng ta s to hm ny theo tng on nh x l tng phn ca form. Hm bt u bng vic to mt mng mi. Sau n kim tra tng check box xem hm getValue() ca n c phi l true khng. Nu l true, nhn ca check box s

c thm vo mng . Khi vng lp kt thc, mng own cha bt k la chn no m ngi dng lm vi cc check box. ActionScript function buttonPressed(buttonInstance) { if (buttonInstance == doneButton) { // su tp mng ca cc CheckBoxes chn own = new Array(); for(var i=1;i<=3;i++) { if (this["checkbox"+i].getValue()) { own.push(this["checkbox"+i].getLabel()); } } trace("Computers Owned: "+own); on m tip theo kim tra tt c cc component RadioButton v ghi nh xem component no c bt ( c chn): ActionScript // xc nh RadioButton no la chn favorite = "none"; for(var i=1;i<=3;i++) { if (this["radiobutton"+i].getState()) { favorite = this["radiobutton"+i].getLabel(); } } trace("Favorite: "+favorite); Component n gin nht l combo box. on m ny ch n gin tr v gi tr ca n: ActionScript // ly gi tr ca ComboBox ComboBox nextPurchase = comboBox.getValue(); trace("Next Purchase: "+nextPurchase); check (kim) nhiu la chn ca list box, bn cn lp t u n cui mng tr v bi getSelectedItems(). Sau bn cn xem xt thuc tnh label ca mi mc chn (item). on m sau s lm iu v xy dng mt mng cha cc nhn la chn: ActionScript

// su tp cc la chn ca ListBox uses = new Array(); items = listbox.getSelectedItems(); for(var i=0;i<items.length;i++) { uses.push(items[i].label); } trace("Uses: "+uses); } } Nu thc s hin ti bn ang lm iu ny, nn s dng cc i tng c tnh cu trc hn l s dng lnh trace. Cho v d, bn c th to mt i tng LoadVars sau gi thng tin n my ch. Thay i kiu dng (Style) ca mt Component Cc component ca Flash vn trng rt p. Nhng nu tt c cc nh pht trin Flash u bt u s dng chng, th tt c cc Flash movie ca chng ta trng s na n nhau. May thay, bn c th tu chnh cc component theo nhiu cch khc nhau. Bn c th d dng to cc giao din ring (custom skin) cho chng. Di y l ba cch ty chnh component bng cch s dng ActionScript. Global Customization (tu bin chung) S dng i tng globalStyleFormat, bn c th ty chnh giao din cho tt c cc component trong mt ln. y l mt v d thay i mu ch ca tt c cc text trong tt c cc component thnh mu xanh da tri (blue): ActionScript globalStyleFormat.textColor = 0x0000FF; globalStyleFormat.applyChanges(); Lnh applyChanges chp nhn s thay i. Ngoi ra, bn c th thit t nhiu thuc tnh khc. Di y l mt s thay i chi tit: ActionScript globalStyleFormat.textColor = 0x0000FF; globalStyleFormat.textFont = "Arial"; globalStyleFormat.textSize = 18; globalStyleFormat.textBold = true; globalStyleFormat.applyChanges(); Bn c th thay i thnh nhiu gi tr nh font chng hn. S mc thay i trong kiu dng ca cc component qu di c th lit k ht y. Bn c th thay i

mu sc v kiu dng ca cc du kim trong CheckBoxes, cc hnh trn trong nhng RadioButton, nhng mi tn trong cc thanh cun ScrollBars, mu nn, mu sc ca vng t sng (highlight colors), mu sc cc mc chn, v.v... Hy xem trong chng trnh Flash ca bn bit y thng tin v danh sch ny. Grouped Customization (ty chnh theo nhm) Mc d i tng globalStyleFormat c s dng bi tt c cc component trn stage, bn vn c th to cho cc i tng ca bn kiu dng (style) ring bit ch dng trong mt vi component m bn ch nh. Bn thc hin iu bng cch to mt i tng FStyleFormat. Khi bn lm iu ny, i tng mi ca bn s c cc thuc tnh ging nh i tng globalStyleFormat. V d, bn c th to mt i tng kiu dng (style object) v thit t mu sc ca n thnh ti nh di y: ActionScript myStyle = new FStyleFormat(); myStyle.textColor = 0xFF00FF; Cc yu t khc ca style khng c thit t chnh xc trong i tng style ny. V th bn c th p dng style ny cho mt component, m din mo ca style khng thay i. p dng kiu dng style ny vo mt component, hy s dng lnh addListener: myStyle.addListener(radiobutton1); Bn ngh c v k quc khi s dng vi addListener, ng l nh vy. Hy hiu rng: bn bo cho component tip nhn (listen) i tng style. Single Component Customization (ty chnh component ring l) Bn cng c th thit t mt cch chnh xc mt trong nhng thuc tnh ca style. Tuy nhin, bn khng th lm iu bng cch s dng c php chm (dot) gn v p nh bn mong mun. Thay v th, bn cn phi dng lnh setStyleProperty. Lnh ny s t thuc tnh style di dng mt chui tham s u tin v gi tr m bn mun thit t cho n tham s th hai. ActionScript checkbox1.setStyleProperty("textColor",0xFF0000); Bng cch s dng ba phng php thit t style cho cc component, bn c th ty chnh cc component theo nh mong mun.

Gi th 22: iu khin m thanh vi ActionScript C hai cch bn c th cho m thanh vo on phim Flash ca mnh. Cch th nht l t n vo ngay timeline. Vic ny khng cn phi s dng m. Cch th hai l s dng ActionScript chi nhng on nhc c lu tr trong Library. Tm hiu cch truy xut m thanh vi ActionScript: Vic kt ni v chi nhc: iu u tin m bn cn trc khi chi mt on nhc vi ActionScript l kt ni n n. Bn hy "Import" file nhc vo Library, bm phi chut chn "Linkage", ri nh du vo cc phn export. Bn cng c th t mt ci tn "Identifier" khc cho on nhc thay v tn file nhc. V d, nu bn "import" file nhc "mysound.wav", n s xut hin trong Library vi ci tn mysound.wav. Khi bn chn Linkage, v nh du export, n s c t tn "Identifier" ngay l "mysound.wav", nhng bn c th sa thnh bt k tn gi bn mun(vd: nhac1). chnh l ci tn m bn s s dng trong ActionScript. chi mt on nhc bng ActionScript, bn phi lm t nht ba bc: u tin l to mt i tng "Sound" : ActionScript mySound = new Sound(); Th hai, bn cn gn on nhc trong th vin vo i tng "Sound" ny: mySound.attachSound("mySound.wav") //mySound.wav l tn bn t trong phn "Identifier" Cui cng, bn hy ra lnh cho i tng "Sound" ca bn chi on nhc: ActionScript mySound.start(); V y l mt on n gin t vo trong mt Button chi on nhc t Library: ActionScript on (release) { mySound = new Sound(); mySound.attachSound("poof.wav"); mySound.start(); } Bn c th tham kho mt v d n gin trong file "22playsound.fla" km theo quyn sch ny. Bn cng c th xem qua mt phng php hi phc tp mt t trong file "22playsoundfunction.fla". Trong file Flash ny, c mt function tn l "playsound" c t timeline chnh. "function" ny bao gm tt c cc m m bn cn chi mt on nhc n gin.

ActionScript function playSound(soundName,balance) { var mySound = new Sound(); mySound.attachSound(soundName); mySound.start(); } Vi vic s dng function ny, bn n gin ha on ActionScript nn bn s ch cn s dng ng mt dng lnh chi nhc. y l on m t trong mt Button s dng function ny: ActionScript on (release) { playSound("poof.wav"); } Cu lnh "start" Cu lnh "start" trong v d trn c th c s dng bng nhiu cch. Bn c th thm hai tham s na vo n thay i cch m on nhc s c chi. Tham s th nht bn c th thm c gi l "offset". N gip bn c th chi bn nhc t bt k v tr no bn mun ch khng phi chi li t u. V d, dng lnh ny s bt u chi t v tr th 1000 miligiy ca on nhc(1 giy sau khi bt): ActionScript mySound.start(1000); Tham s th hai ca cu lnh "start" l s ln lp li ca on nhc. V d, nu bn mun bt u bn nhc ti v tr sau 1 giy v lp ba ln, cu lnh s nh sau: ActionScript mySound.start(1000,3); Bt u bn nhc ti v tr t u v lp ba ln: ActionScript mySound.start(0,3); Cu lnh i i vi "start" l "stop". Khi bn ang chi mt on nhc, bn c th a ra cu lnh "stop" bt c khi ny ngng hn on nhc. Bn phi thm vo tham s l tn (Identifier) ca on nhc. Nu khng, lnh "stop" s ngng tt c cc on nhc ang chi.

ActionScript mySound.stop("poof.wav"); iu chnh m lng Bn c th sa i on trc v khi ang chi bng mt s cu lnh. Cc cu lnh ny cn c th iu chnh m lng ca on nhc, trong tt c loa hay ch tng ci. Lnh "setVolume" l cch iu chnh n gin nht, bn ch cn cho mt tham s t 0 n 100 l bn c th vn to, nh mt on nhc: ActionScript mySound.setVolume(50); Trong file "22playsoundvolume.fla" bao gm mt nt Play v bn nt khc iu chnh m lng ln t l 0, 10, 50 v cui cng l 100. Nt Play s chi mt on nhc 100 ln nn bn c th th iu chnh m lng trong lc ang chi nhc. Ch l vic bn iu chnh m thanh ca mt on nhc s khng lin quan n cc on nhc khc. V vy bn c th iu chnh cc m thanh khc nhau nh nhc nn v cc ting ng. i tng "Sound" i tng "Sound" c hai thuc tnh m bn nn bit n. Th nht l "duration" l di ca on nhc tnh bng miligiy. Th hai l "position" l v tr m on nhc ang chi, cng tnh bng miligiy. V d, nu mt on nhc c thuc tnh "duration" bng 3000, c ngha l n di 3 giy. Nu thuc tnh "position" bng 1500 th on nhc ang chi chnh gia. Trong file "22tracksound.fla" th hin cch dng "position" v "duration" th hin ca on nhc. Sau khi bt u, mt vch en s chy dn dn theo v tr ca on nhc. ActionScript onClipEvent(enterFrame) { // tnh xem chi c bao nhiu ca on nhc (gi tr t 0.0 n 1.0) percentPlayed = thisSound.position/thisSound.duration; // ly di ca thanh barWidth = _root.bar._width; // t v tr ca du vch _root.mark._x = _root.bar._x + barWidth*percentPlayed; }

Khi on nhc kt thc: Bn c th s dng thuc tnh "position" v "duration" kim tra mt on nhc ht hay cha, khi hai gi tr ny s bng nhau. Tuy nhin nu on nhc c lp nhiu ln th hai gi tr ny s bng nhau mi khi cui on nhc. Mt cch tt hn kim tra khi no on nhc kt thc l dng "onSoundComplete". y l mt function s c thc thi khi on nhc kt thc hn. ActionScript mySound = new Sound(); mySound.attachSound("mySound.aif"); mySound.onSoundComplete = function () { trace("sound done!"); } mySound.start(); iu chnh cn bng: Bn c th iu chnh m lng ca loa ny to hn loa khc thng qua lnh "setPan". iu ny ging nh gin my stereo. Bn c th t gi tr t -100 n 100. Nu bn l -100, tt c m thanh s c pht ra bn loa tri, cn 100 s l loa phi. ActionScript mySound.setPan(-100); Bn c th tham kho file "22monopan.fla". Khi bn bm no nt "Play" bn tri, loa tri s pht ra, bm nt "Play" bn phi, loa phi s pht ra. Gi th 23: Qun l streaming cho movie, Managing Movie Streaming Trong gi 23 chng ta s tin hnh nhng bc sau:

Tm hiu, gim st movie khi load Lm 1 loader n gin Lm 1 loader phc tp hn vi loading bar Load cc media movie bn ngoi vo flash (sound, image)

Chng ta bt u vi bc 1 nh : Cc Movie Flash u c tnh cht stream. iu ny c ngha l frame u tin ca movie s bt u ngay khi n c np xung, ko ph thuc vo vic ci frame cui cng c load xong hay cha. Bn c th ko mun vic ny xy ra. V d nh movie ca bn l 1 on animation

ngn, bn c th ko mun n bt u cho n khi movie c load hon ton t web. C vi cch bt movie i cho n khi loading xong. Cch thng dng nht l ta to 1 loader frame. l frame u tin ca movie. N s quan st tnh cht ca movie v xc nh xem khi nao th movie kt thc vic loading. bit c c bao nhiu frame c load xung bn s dng tnh cht _framesLoaded, cn bit tng s Frame ca movie bn s dng tnh cht: _framesTotal. Bn c th s dng iu ny trong 1 s trng hp n gin. V d bn t frame u tin lnh stop(); ta to 1 button cho php ngi s dng tip tc. Khi ngi s dng click vo btn bn c th dng 1 on script tng t nh sau xc nh xem phi lm g tip theo: CODE on (release) { if (_root._framesLoaded == _root._totalFrames) { play(); } else { textDisplay = "Wait a few seconds and press again."; } } Nu nh movie cha c load ht th text field m ta lin kt qua var textDisplay s thng bo cho user. Bn cng c th s dng k thut ny trong 1 phn ca 1 movie di. V d btn c th nm Frame 50 v ch ngi s dng tip tc khi m 50 frames tip theo sn sng. Ta dng on code sau thc hin: CODE onClipEvent(load) { _root.textDisplay = "Waiting for the next sequence to load."; _root.stop(); } onClipEvent(enterFrame) { if (_root._framesLoaded >= 100) { _root.play(); } } y l phn u c bn ca 1 loader script. Tuy nhin c cc cch khc chnh xc hn gim st vic loading hn l tnh s frames. Bn c th s dng getBytesLoaded and getBytesTotal tnh tng s file v s file load. y l on script t vo trong 1 mc frame u tin ca movie. frame u tin bn ch t thm lnh stop();

CODE onClipEvent(enterFrame) { if (_root.getBytesLoaded() == _root.getBytesTotal()) { _root.play(); } } mi ln enterFrame iu kin s c kim tra v khi tha mn tc movie c load hon ton th movie s c play tip tc Chng ta tip tc tin hnh lm 1 loader n gin cho ton b movie c load trc khi n vt qua frame 1 : 1.M 1 file mi. 2. frame u ta to 1 keyframe 3.To thm 1 kf mi frame 2 c th test ci loader 1 cch r rng th frame 2 nn cha 1 movie ti thiu l 100 K. Cch tt nht tng dung lng l ta import 1 video. 4.Tr li frame 1, chng ta mun c 1 movie ch cho n khi ton b movie c load trc khi tip tc sang frame 2 ---> cho 1 lnh stop(); vo frame 1 ny. Ta to 1 shape n gin v convert n sang mc v tng c n sang 1 gc mn hnh m ngi xem ko nhn thy (chui rng). Ta cho on script sau vo: CODE onClipEvent(enterFrame) { bytesLoaded = _root.getBytesLoaded(); bytesTotal = _root.getBytesTotal() percentLoaded = Math.round(100*bytesLoaded/bytesTotal); _root.displayText = "Loading: "+percentLoaded+"%"; if (bytesLoaded == bytesTotal) { _root.play(); } } on script s kim tra getBytesLoaded xem li u movie kt thc vic loading cha. y ta tnh s phn trm load (percentLoaded) v cho hin th con s ny qua bin displayText root level Bn ng qun to 1 dynamic text field v t var cho n l displayText nhe. S rt kh kim tra khi bn test ci movie ny vi Flash player trn my v movie ca bn chy nhanh qu, ko kp nhn ci loader. Bi vy nn publish n ln 1 trang web ri test . Hoc bn c th gi thit lp 1 cai modem 56 K No by gi goto website v test bn s thy qu trnh loading c hin s phn trm text field. Khi t n 100% movie s tip tc play. Bn c th kim tra movie ca bn vi file: 23simpleloader.fla 3. cho ci loader ca chng ta thm p, chng ta tin hnh bc 3 lm 1 loader

phc tp hn c thm 1 ci progess bar na nh cc bc lm nh sau: 1.Bt u 1 movie mi 2.V 1 hnh ch nht rng vi border

3.Chn ton b ci hnh ch nht ny v t chng vo 1 mc bng cch chn insert v convert to mc. 4.Click 2 ci vo mc mi ny edit n 5.Tch ring phn fill v border ca ci hnh ch nht ra lm 2 layer 6.Copy ci fill ca hnh ch nht v to 1 layer mi paste n vo. Layer ny nn nm trc v layer c cha hnh ch nht c th nm sau n. 7.Chn hnh ch nht mi ny(cai fill) v chn cho n mu ti hn. t v tr khp vi ci border, pha trn hnh ch nht c 8.By gi ta convert n sang mc v t instance name l barFill Double click vo mc mi ny v ta chnh reg. point cho n l gc tn cng bn tri. Tr li movie chnh, ta to thm 1 layer mi. V t 1 dynamic text . t var cho n l displaytext, bn nh chn font ch p dp v mu cng p p 1 cht nh movie ca timeline chnh ta t on code sau vo mc chnh ca chng ta: CODE onClipEvent(load) { // initialize variables bytesLoaded = 0; bytesTotal = _root.getBytesTotal(); }

on code enterFrame phi lm nhiu vic nht. N c nhim v theo di s bytesLoaded v bytesTotal lin tc mi Frame. Bin percentLoaded c gi tr t 0 n 100. V n c s dng chnh thay i _xscale ca thanh Bar. Bn cn nh l ta mc nh im reg. point ca thanh Bar ny gc bn tri ko? Chnh v vy m thanh bar s di ra theo gi tr ca bin percentLoaded sang pha bn phi Khi m s bytesLoaded = s bytesTotal th display text s hin thng bo: "Loading Complete" v chuyn movie sang frame tip theo. CODE onClipEvent(enterFrame) { // if there is more to load

if (bytesLoaded < bytesTotal) { // get current amount loaded bytesLoaded = _root.getBytesLoaded(); // calculate percentage percentLoaded = Math.round(100*bytesLoaded/bytesTotal); // if there is still more if (bytesLoaded < bytesTotal) { // display text displayText = "Loading: "+percentLoaded+"%"; // set scale of bar barFill._xscale = percentLoaded; // no more left } else { // display complete displayText = "Loading Complete."; // fill out bar barFill._xscale = 100; // go to next frame _root.nextFrame(); } } } Ko bit hng dn nh trn cc bn hnh dung ra cch lm cha nh. Nu cc bn cha hiu th cbt s post thm hnh minh ha vo Timeline ca chng ta tt nht nn phn ra nh sau nha: -Timeline chnh s gm c 3 layer. Layer th nht s cha ci loader bar mc m chng ta to. N s ko di trong 2 frames. -Layer th 2 s gm c 2 keyframes fr1 v fr2. kf 1 l lnh stop(); Layer th 2 ta s cho 1 button. Ngi s dng s click vo button xem tip phn cn li ca movie. Trong btn cho on code sau: CODE on (release) { play(); } -Layer th 3 bt u t frame th 3 s cha ci movie cn load ca bn

Cc bn c th xem thm file : 23complexLoader.fla C nhng lc bn cn to cc movie ln c cc media th ta ko cn phi to 1 movie y nhng file media trong m c th load cc file media c sn ny t bn ngoi. Nh vy bn c th xy dng 1 trnh din ln bng cch s dng nhng file bn ngoi. lm c iu ny chng ta s tm hiu cc bc sau: Th ch movie hin thi Cch n gin lm iu ny l bn chia ct movie ny ra thnh cc phn ring. Khi 1 movie kt thc ta c th chuyn n 1 movie khc. Tt c nhng g bn cn l dng lnh loadMovie V d, bn c 1 frame cui 1 movie di. Khi ngi xem n , h c th click vo 1 button v xem 1 movie khc. on code n gin nh sau: CODE on (release) { loadMovie("animation2.swf"); } Hoc l bn c th cho ngi s dng la chn animation m h mun xem tip. cui movie s c 2 buttons cha cc movie khc nhau. Vic to lin kt gia cc movie l rt quan trng sao cho khi user c th tr li movie c ban u. Bn c th xem v d file 23movie1.fla bit thm lm th no trnh by tc phm ca bn vi cc files c sn. Loading a Movie Clip Vi lnh loadMovie bn c th thay th ch ca 1 mc bng 1 mc khc. V d thay th ch ca myMovieClip bng file otherMovie.swf bn ch cn lm: CODE myMovieClip.loadMovie("otherMovie.swf); Khi s dng loadMovie bn c th dng getBytesTotal and getBytesLoaded functions thng bo cho ngi dng bng text hoc bng progess bar m chng ta lm trn qu trnh load. Nu mun preload mt movie clip sn sng lc cn hin th, chng ta s to mt movie trng, khng c g trong ngoi tr mt cu lnh stop(). Sau chng ta load mc vo mc trng ny (ko hin th trn stage). Khi load hon ton th movie ca chng ta sn sng frame u tin. Movie file ny s nm sn sng trong browser cache ca user. By gi khi n on c s dng mc ny th lnh loadMovie s lm vic. Lc s nhanh hn v file c download hon ton v ri. Sau s dng lnh gotoAndPlay(2) qua frame 1.

Loading a JPEG myMovieClip.loadMovie("picture.jpg"); Flash MX cng cho php ta kh nng load 1 file JPEG ngoi vo. Cch lm tng t nh cch chng ta load movie trn, ch cn thay i a ch movie bng a ch ca file JPEG l ok: CODE myMovieClip.loadMovie("picture.jpg"); mc myMovieClip by gi c thay th ch bng 1 mc c cha bitmap image ny. Bn c th kim tra v xem v d file 23loadipeg.fla Loading a Sound C 2 cch play 1 sound t 1 file bn ngoi. C 2 u s dng sound object v lnh loadSound. Cc sound file ny cn dng ph bin l mp3. Sau y l 1 v d cho cch th 1, chi 1 event sound. y ton b sound s c load vo b nh trc v sau c chi nu nh c lnh start(); CODE on (release) { mySound = new sound(); mySound.loadSound("mysound.mp3",false); mySound.start(); } Flash s ghi nh l lnh start c a ra thm ch khi sound mi ch bt u download. Khi sound c load xong th n s c play ngay lp tc CODE on (release) { mySound = new sound(); mySound.loadSound("mysound.mp3",true); } Cch th 2 l ta s dng true param th 2. Gi tr true ny s bo vi flash l 1 stream sound. Ngay khi sound c load phn no th s bt u chi ngay trong lc phn cn li vn tip tc c load. Nu ngi dng c kt ni mng tt th s nghe c ton b sound khi load. Ghi ch l bn ko cn phi s dng lnh start vi 1 streaming sound. Tuy nhin bn

cn phi ch khi s l file MP3. V d nu bn s dng file nhc mp3 vi 128 Kbps hay 160 Kbps thng dng nghe th n s l 1 file qu ln c th stream vi internet, c bit nu ngi s dng dng modem. 32 Kpsb hay t hn s thch hp hn khi ta s dng stream. Chng ta tng kt li nhe: Streaming l 1 cch rt tt gip chng ta s dng d dng hn vi 1 movie ln. Ta c th s dng AS kim tra 1 qu trnh loading. Bn c th gi movie frame th nht v ch n tip tc khi ton b movie c load. Bn cng c th thng bo cho ngi dng qu trnh loading bng text thng bo s % hoc 1 bng 1 progess bar chng hn. Bn c th chia movie ra thnh cch file ring v s dng loadMovie nhy t file ny ti file khc nh ngi s dng mun. Cc file bn ngoi c th c load vo bng cc cch khc nhau. Ngoi movie bn c th load 1 file nh, file nhc na. Mt s cu hi v tr li sau c th gip bn nm r bi hn: Cu 1: ta c th load 1 mc, vy c th unload chng ko?? -Tr li: c, bng lnh unloadMovie Cu 2: bnh thng th flash cn bao lu load trc khi n start?? -Tr li: ngay frame u tin. Bi vy bn cn s dng lnh stop nu nh mun n i trc khi tip tc. Cu 3: 2 cch xc nh khi 1 movie c load hon ton?? -Tr li: cch 1 dng getBytesLoaded == getBytesTotal function cch 2 dng _frameLoaded property v _totalFrames property. Ngoi ra bn c th xem thm cc bi vit sau: Cch to 1 preloader n gin http://www.vnfx.com/ipb/index.php?showtopic=2325 Cch tng qut to 1 loader p: http://www.vnfx.com/ipb/index.php?showtopic=2921 Ngoi ra v loadMovie, loadSound cng c rt nhiu bi. Bn chu kh search ha Gi th 24: V vi AS, Hour 24. Drawing with ActionScript y l h cui cng, cng l gi rt th v, hy vng cc bn cm thy dzui dz khi v bng AS . CBT ko c kinh nghim dch bi, vi li nhn vo my bi text dy c

ch l ti mt ti mi nn nhiu ch dch lung tung, theo thch bi vy c ch no din t ti ngha, ko ng th cc bn c thng thn gp , ng thng tic . Trong gi ny chng ta s hc cch:

V ng thng v ng cong T mu 1 vng ngi s dng v vi chut t cc hnh v trong 1 movie clip mi To cc text fields

1a.Drawing lines - v 1 ng thng, vic u tin cn lm l nh ngha cc gi tr ca lineStyle, n dy nh th no n, ri c mu g v alpha. CODE lineStyle(thickness, color, alpha); Mu (color): gi tr c a ra di dng s thp lc phn hexa, v d: 0x000000 l mu en, 0xffffff: trng , chng ta c th nhn vo bng color mixer bit thm trong sut(alpha): min = 0; max=100; dy (thickness): dy nh nht l 0, cn ln nht l bao nhiu th cbt ko bit . Vi dy 1 ci line c dy l 1 pixel, cn nu ta cho gi tr l 0 (hairline) th n vn c dy l 1 pixel . Tuy nhin chng khc nhau ch: vi hairline nu nh chng ta thay i scale ca n th dy ca n vn ko thay i. Cc bn th on code sau, v thay i gi tr dy nh: CODE lineStyle(0,0x000000,100); moveTo(20,50); lineTo(200,200); _xscale=300; _yscale=300; Nhn on code trn ta thy xut hin lnh: CODE moveTo(20,50) v 1 ng thng ta cn xc nh 2 im: u v cui. Mi im li c xc inh vi 2 gi tr x v y ---> moveTo l im u, im t bt. Nh vy cu trn ta t bt ti x=20; y=50. ----> lineTo l im tip n. Ta c x= 200; y=200. Nh vy chng ta v c ng thng ni t im (20,50) n (200,200).

Ch :

1. nu nh cc bn ko nu im moveTo th n t mc nh l im (0,0) 2. nu nh cc bn v thm cc line tip theo vi lineTo th im t bt c mc nh l im cui cng ca line trc. V d v 500 ng lung tung trn mn hnh ta c on code n gin sau:

CODE // set line style lineStyle(2,0x000000,100); // draw 500 lines for(var i=0;i<500;i++) { // pick random start point x1 = Math.random()*550; y1 = Math.random()*400; // pick random end point x2 = Math.random()*550; y2 = Math.random()*400; // move to start point moveTo(x1,y1); // draw to end point lineTo(x2,y2); } By gi cc bn th play tr ny xem sao, th thay i alpha, color or thickness ca n Mi ngi th copy and paste on code sau xem hin ra g no CODE // set line style lineStyle(2,0x999999,100); for(var x=-400;x<550;x+=10) { // draw diagonal strip from left to right moveTo(x,0); lineTo(x+400,400); // draw opposite strip moveTo(550-x,0); lineTo(550-x-400,400); } :

1b.Drawing Curves Tng t khi bn bit cch v line ri th v curveTo ko c g l kh. N ch c thm 1 cht gi tr thi. Ta c on code: CODE lineStyle(3,0x000000,100); moveTo(150,200); curveTo(275,275,400,200); Nh bit moveTo l im bt u, anker1 ha. curveTo(control_x, control_y, anker2_x, anker2_y); Control_point l tip tuyn ca 2 im anker vi ng cong anker2 l im cui cng ca curve. Cc bn c th c thm 1 s bi vit trong din n v ng cong bezier hiu r thm . Chng ta play tip vi on code sau: CODE lineStyle( 1, 0x0000FF, 100 ); moveTo(200,200); curveTo(250,200,300,200); curveTo(300,250,300,300); curveTo(250,300,200,300); curveTo(200,250,200,200); Olala, ti sao chng ko hin ra cc curve m li l 1 hnh vung. Nguyn nhn l do chng ta cho cc gi tr control point gia 2 im kia Hy th thay i 1 cht xem chng ta c g no: CODE var bend = 42; moveTo(200,200); curveTo(250,200-bend,300,200); curveTo(300+bend,250,300,300); curveTo(250,300+bend,200,300); curveTo(200-bend,250,200,200); s dng bin bend thay i control point ta c 1 hnh trong hi mo ri phn ny plz c thm cc topic trong box AS . V

2. Drawing Filled Areas Trc ht c th t mu cho 1 vng ta cn phi v 1 hnh khp kn ha. Sau dng lnh beginFill v: CODE beginFill(color of fill, alpha of fill) V d on code sau: CODE lineStyle( 3, 0x000000, 100 ); beginFill( 0xFF0000 ); moveTo(175,100); lineTo(375,100); lineTo(375,300); lineTo(175,300); lineTo(175,100); endFill(); Nu nh 1 vng c ct bi line ln th 2 th ch n s ko c mu na. Da vo ta c th to nn 1 s hnh th v . Bn th copy on code sau xem n hin ra ci g no v ch no c t mu, ch no ko : CODE lineStyle(3,0x000000,100 ); beginFill(0xFF0000); moveTo(250,50); lineTo(308,230); lineTo(155,120); lineTo(345,120); lineTo(192,230); lineTo(250,50); endFill(); C cch khc tt hn v 1 star, n cho php chng ta qui nh cc gi tr ban u. Bn th xem file fla 24betterstar.fla xem sao Pause 3.V vi chut Phn tip theo trong sch ny c on code user v vi chut, thnh tht m ni, nu bn c on code ca DS post bn phn Flash hack th bn s thy n khc nhau 1 tri 1 vc nh th no http://www.vnfx.com/ipb/index.php?showtopic=3007 Nu bn c on code ca DS th ng nn c tip on code hng dn trong

cun sch ny lm g. CBt thy l ko cn thit phi dch ch ny nhng trt ri nn tn trng quyn sch, cbt dch cho y vy 1.To 1 shape n gin, convert to mc. 2.Copy on code sau vo mc (cbt phn tch km) CODE onClipEvent (load) { // cho cc gi tr cho kiu line _root.lineStyle(0, 0x000000, 100); } //khi chut c dz xung th bt u v onClipEvent(mouseDown) { // ok to draw draw = true; // xc nh im start v startX = _root._xmouse; startY = _root._ymouse; _root.moveTo(startX,startY); } //khi th chut ra th ko v na onClipEvent(mouseUp) { // don't draw anymore draw = false; } //bt u onClipEvent (enterFrame) { if (draw) { //ly v tr hin ti ca chut newX = _root._xmouse; newY = _root._ymouse; //nu nh v tr khc vi v tr ban u if ((newX != startX) or (newY != startY)) { //v 1 line ti v tr mi _root.lineTo(newX,newY); // reset location for new time startX = newX; startY = newY; } } }

Phn ny ch c vy 4.To 1 movie clip ring cho cc hnh v Nhng g chng ta lm trn ch l v 1 cch n gin trn stage, n c bt li l c th b bt k mc no che khut. ko th di chuyn. Khi chng ta t nhng ci ny vo trong 1 mc th thun tin hn rt nhiu. ta c th thay i _x, _y, rotation, alpha, scale .... to 1 new mc ta dng lnh : CODE my_mc.createEmptyMovieClip("tn ca new mc", level ca n) V d : CODE this.createEmptyMovieClip("myMovieClip",1); myMoveClip.lineStyle(0,0x000000,100); myMoveClip.moveTo(100,100); myMovieClip.lineTo(200,200); Nh vy bn c 1 mc mi tn l myMovieClip, level 1, c cha cc hnh v trn. Nu bn mun vit nhanh hn th c th vit li nh sau: CODE this.createEmptyMovieClip("myMovieClip",1); with(mymovieClip){ lineStyle(0,0x000000,100); moveTo(100,100); lineTo(200,200); }

Lnh createEmptyMovieClip ny cn c rt nhiu tc dng khc nh ta c th attach thm movie vo hay l sao chp (duplicateMovieClip) Ri bi gi bn hy th to 1 mc mi i no C 1 bi hng dn v bng tuyt kh p trong cun sch, tuy nhin code c chia nh thnh cc function kh di dng v mt cng. trong khi trong din n ca chng ta c nhiu on code v lm tuyt hay hn rt nhiu: bi th tri lm tuyt ca DS trong box hng dn thc hnh. c bt hp vi ch ny l bi dng 100% bng AS ca Raider (tm trong mc lc), trong c on code rt hay. Bi vy cbt s ko dch v on code trong sch ny na.

bit thm chi tit xin xem file fla 24snowflakes.fla 5.Textfield y l phn cui cng, chng ta s hc cch to 1 text field v sau l lm 1 effect flying words. To Text to 1 text chng ta cn to 1 text (text field) vi lnh : CODE createTextField("text_name", level , v tr _x, vi tr _y, chiu rng,chiu di); Sau l text hin ln trong text field : CODE text_name.text = "Ni dung text"; V d on code sau, mnh phn tch trong luon cho nhanh: CODE //to 1 ch tn my..., level 0, _x=0, _y=170, width=550, height=60 createTextField("myTextField",0,0,170,550,60); //text myTextField.text = "Welcome to VNFX"; // gi tr true l s dng font chng ta add trong th vin, false l ta s dng font mc nh myTextField.embedFonts = true; //mc nh cc tnh cht ca text myTextFormat = new TextFormat(); //loi ch, c, mu, v tr myTextFormat.font = "Arial"; myTextFormat.size = 48; myTextFormat.color = 0x330000; myTextFormat.align = "center"; //lin kt nhng tnh cht ny vi text ca chng ta myTextField.setTextFormat(myTextFormat);

Ch khi s dng embedFont ta cn phi chn 1 font trong th vin click vo gc phi trn cng ca th vin, chn font m bn mun, sau click chut phi, linkage,

export, IDname Nu bn mun to 1 Input text th cn phi cho type ca textField l input, sau c th set thm cc variable my c th nhn info t user Cn rt nhiu cc tnh cht trong textField v textFormat class, cc bn nn c thm help trang tr cho textField ca mnh L thuyt ch c vy, no by gi chng ta s lm effect flying words CBT ko dm nhn xt nhiu v on code v cch lm trong cun sch ny, tuy nhin n c chia nh thnh cc function gy rc ri, di dng cho ngi c, li cn phi to thm mc trn stage, c ch hn ch na... Thi th c a ra vy CODE function createText(n,text) { // create a new movie clip this.createEmptyMovieClip("text"+n,n); mc = this["text"+n]; // set the text format myFormat = new TextFormat(); myFormat.font = "Arial"; myFormat.color = 0x000000; myFormat.size = 24; myFormat.align = "center"; // create a new text field mc.createTextField("myTextField",1,-100,-20,200,40); mc.myTextField.text = text.toUpperCase(); mc.myTextField.embedFonts = true; mc.myTextField.setTextFormat(myFormat); // return reference to this movie clip return(mc); } function createAllText(textList) { // loop through array of text for(var i=0;i<textList.length;i++) { // create movie clip with this text mc = createText(i,textList[i]); // set random location mc._x = Math.random()*450+50; mc._y = Math.random()*350+25; // set scale to nothing

mc._xscale = 0; mc._yscale = 0; // set scale variable to negative amount mc.scale = 0-i*100; } } function init() { // create array of text var words = "Love,Peace,Destiny,Llamas,Fate,History,Cheese,Rainbows,Tiny Rocks"; var textList = words.split(","); // create all text movie clips createAllText(textList); // remember how many there are numWords = textList.length; } function moveText() { // loop through words for(var i=0;i<numWords;i++) { // increase the scale of this movie clip mc = this["text"+i]; mc.scale += 10; // hide movie clip when scale is too big if (mc.scale > 300) { mc._visible = false; // set scale of movie clip to scale when it is a positive number } else if (mc.scale > 0) { mc._xscale = mc.scale; mc._yscale = mc.scale; } } } init(); stop(); Sau bn to 1 mc trn stage v nht on code sau vo: CODE onClipEvent(enterFrame) { _parent.moveText(); }

Cui cng vo th vin, trong menu ca th vin ta chn font ru linkage, ri export vi tn Arial. effect ny ko c g khc l ta to 1 array cha cc text, sau cc text hin ra t t v dn dn phng to ln, n 1 kch thc no th bin mt. cc text hin ra t t ta ch cn mc nh scale ban u ca text l ko, sau dng thm 1 var na. Dn dn phng to ln th ta thay i scale thi. Thy on code trn di dng qu nn cbt vit li cho n n gin bt nh sau CODE function a(){ wordArr=new Array("vnfx","flash","actionscript"); //ta to 3 mc cha 3 text field for(var n=0;n<wordArr.length;n++){ _root.createEmptyMovieClip("text"+n,n) mc=_root["text"+n]; myFormat=new TextFormat(); myFormat.font="Arial"; myFormat.color = 0x000000; myFormat.size = 24; myFormat.align = "center"; mc.createTextField("myTextField",1,-100,-20,200,40); mc.myTextField.text = wordArr[n]; mc.myTextField.embedFonts = true; mc.myTextField.setTextFormat(myFormat); //mc nh cc gi tr ban u mc._x=Math.random()*450+50; mc._y=Math.random()*350+25; mc._xscale=mc._yscale=0; //bin to s xut hin t t mc.scale=0-n*100; mc.onEnterFrame=function(){ this.scale+=10; if (this.scale > 300) { removeMovieClip(this); } else if (this.scale > 0) { this._xscale=this._yscale = this.scale; } } } } a();

//cho lp li sau 5 s setInterval(a, 5000); Kt thc ri c thc mc kin co g cc bn c gp ha

You might also like