147
Bài 1 : Làm quen với cửa sổ Flash- Tự học lập trình Flash Nếu từng thích thú với những trò chơi trên máy tính, chắc có lúc bạn mơ ước “hành nghề” lập trình trò chơi, nhưng chưa biết bắt đầu từ đâu. Bạn có thể bắt đầu với Flash, công cụ tạo ra trò chơi trên trang Web. Flash giúp dựng nên các hoạt cảnh, trong đó những vật thể, những nhân vật hoạt động theo quy tắc nào đó và có thể có sự thông minh nhất định mà người ta gọi là “trí tuệ nhân tạo” (artificial intelligence). Không chỉ trò chơi, Flash cho phép tạo ra chương trình bất kỳ chạy trên trang Web. Flash là công cụ của người chuyên nghiệp nhưng vẫn “dễ chịu” đối với người “lơ mơ”. Chỉ cần chăm chú trong từng bước nhỏ, bạn sẽ đi rất xa. Trước hết, bạn cần cài đặt phần mềm Flash. Để làm quen với Flash, bạn có thể dùng từ phiên bản Flash 7 trở về sau. Flash 7 còn gọi là Flash MX 2004, chạy tốt trên máy tính của năm… 2004. Máy tính cũ vẫn có thể giúp bạn thu được rất nhiều kỹ năng mới. Những nội dung nâng cao đòi hỏi phải có phiên

flash toan tap 31 bai.pdf

Embed Size (px)

Citation preview

  • Bi 1 : Lm quen vi ca s Flash- T hc lp trnh

    Flash

    Nu tng thch th vi nhng tr chi trn my tnh, chc c lc bn m

    c hnh ngh lp trnh tr chi, nhng cha bit bt u t u. Bn

    c th bt u vi Flash, cng c to ra tr chi trn trang Web. Flash

    gip dng nn cc hot cnh, trong nhng vt th, nhng nhn vt

    hot ng theo quy tc no v c th c s thng minh nht nh m

    ngi ta gi l tr tu nhn to (artificial intelligence). Khng ch tr

    chi, Flash cho php to ra chng trnh bt k chy trn trang Web.

    Flash l cng c ca ngi chuyn nghip nhng vn d chu i vi

    ngi l m. Ch cn chm ch trong tng bc nh, bn s i rt xa.

    Trc ht, bn cn ci t phn mm Flash. lm quen vi Flash, bn c

    th dng t phin bn Flash 7 tr v sau. Flash 7 cn gi l Flash MX 2004,

    chy tt trn my tnh ca nm 2004. My tnh c vn c th gip bn thu

    c rt nhiu k nng mi. Nhng ni dung nng cao i hi phi c phin

  • bn Flash mi hoc cc cng c b sung (chng hn Flex Builder) s c

    trnh by sau khi bn nm vng phn c bn.

    Sau khu ci t phn mm, bn hy khi ng Flash. Khi thy mt ca s

    nh, bn chn mc Flash Document phn Create New, bt u lm quen

    vi cc th bn trong ca s Flash.

    Ca s Flash gm nhiu bng chn (panel), gip bn thc hin nhng vic

    khc nhau. Chng hn, hnh 1 l bng chn Color Mixer, cho php chn mu

    cho hnh v. Bn c th bm vo ch no trong khung mu chn hoc

    ghi tr s vo cc R (Red), G (Green) hoc B (Blue). l ba tr s xc nh

    mu bt k. Alpha gip quy nh trong sut ca mu.

    Bn c th di chuyn bng chn i u cng c, thun tin cho cng

    vic. Mun vy, bn ch cn tr vo gc trn, bn tri ca bng chn , gi

    phm tri ca chut, ko i. Mun bng chn u vo ch c, bn cng lm

    ging vy: nm ko gc trn, bn tri ca bng chn, a n v v tr c nh

    bn phi ca s Flash.

  • V c kh nhiu bng chn nn khi cha dng n bng chn no , bn nn

    cho n co li bng cch bm mt pht vo thanh tiu ca n. Khi cn

    dng bng chn, mun cho n bung ra, bn li bm mt pht vo thanh tiu

    .

    Bn c th dp c nhm bng chn bn hng ca s Flash bng cch bm

    vo du mi tn mu trng cnh sn ca nhm (hnh 2). Mun cho nhm

    bng chn bung ra, bn bm vo du mi tn trng ln na.

    Bn thy gia ca s Flash c mt khung trng trn, mu trng (hnh 3).

    chnh l sn khu (stage), ni m bn s xy dng hot cnh, th hin cc

    tng sng to. Ta c th to nn cc hnh v trn sn khu, c th co dn v

    di chuyn chng ty . Ngi ta gi chng l cc i tng (object).

  • Bn n bng chn nm bn tri ca s Flash, thng c gi l

    bng cng c (tool panel) hay hp cng c (tool box), gip bn v v sa

    hnh. Bn th v mt qu banh nha. Bn hy bm vo hnh trn hp cng

    c (hoc g phm ch O). l biu tng ca cng c Oval Tool v hnh

    -van. (hnh trn l trng hp ring ca hnh -van thi). a con tr chut

    vo sn khu, bn thy n i dng thnh du thp. Bn tr vo u trn

    sn khu, gi phm Shift v ko chut (gi phm tri ca chut khi di chuyn)

    v ra hnh trn (bn gi phm Shift v c hnh trn thay v hnh -

    van).

    Bn bm vo cng c chn hp cng c (hoc g phm ch V), tr vo u

    pha trn, bn tri hnh trn va v, ko chut qua phi, xung di, nhm

    cng mt khung chn bao quanh hnh trn. Xong, bn tr vo hnh trn, th

    ko n n v tr khc trn sn khu.

  • Vng mu xm bao quanh sn khu c th xem l hu trng ca sn khu.

    Nu bn t hnh trn vo vng xm, n s khng xut hin khi trnh din.

    Khi cn cho i tng no xut hin, bn c th ko n t hu trng vo

    sn khu.

    lu hot cnh to ra (d lc ny qu banh cha nhc nhch g ht),

    bn bm vo File thanh trnh n ri chn Save trn trnh n x xung (ni

    vn tt l chn File > Save). Bn thy xut hin mt hp thoi (dialog box),

    gip bn chn th mc v t tn cho tp tin cha hot cnh, thng gi l

    tp tin ngun ca Flash (Flash Document). Tp tin ngun Flash c tn phn

    loi l fla.

    Bi 2 : Nhn vt v th hin trong lp trnh Flash

    Mi khi khi ng Flash, bn lun thy mt ca s nh lit k mt s tp

    tin fla m bn m xem hoc to ra trong nhng ln trc. Bn hy

    chn tp tin c hnh qu banh do bn v.

    Bn tr vo qu banh, gi phm tri ca chut, th ko qu banh qua v tr

    khc. C l bn s ngc nhin v v tr c vn cn mt ng trn, khng c

    mu t. chnh l nt vin ca hnh trn c to ra bi cng c Oval Tool.

    Bn c th quy nh mu ring cho nt vin ca hnh trn. Ta ch cn qu

    banh khng c nt vin, bn hy xa nt vin bng cch bm vo nt vin

    chn v g phm Delete.

    t mu cho qu banh, bn bm vo qu banh chn, bm vo Fill

    Color trong bng Color Mixer (t rng bn mun quy nh mu t ch khng

    phi mu nt) v chn mu bn thch.

  • Qu banh hin c ca bn ch l mt hnh v n thun. Mun cho qu banh

    tr thnh mt i tng c hnh vi ring, c th iu khin bng cch lp

    trnh, trc ht bn cn chuyn i qu banh thnh mt nhn vt (movie clip).

    Vi qu banh ang tnh trng c chn, bn ch cn g phm F8. Khi

    thy hp thoi Convert to Symbol (hnh 1), bn g Ball (qu banh) t tn

    cho nhn vt sp c to ra. Bn cng nn chn im mc ca nhn vt

    gia cnh di khung bao ca hnh qu banh bng cch bm vo gia,

    di cng trong chn vung nh ca mc Registration. Sau ny, khi ni v

    ta ca nhn vt, bn hiu l ta ca im mc.

    Sau khi bn bm nt OK trong hp thoi Convert to Symbol, hnh qu banh tr

    thnh mt nhn vt. Khc vi nhng hnh v bnh thng trong Flash, nhn

    vt c lu tr trong th vin (library). n Ctrl+L (hoc g phm F11), bn

    thy bng Library xut hin bn phi ca s Flash, trong c tn nhn vt

    Ball, hin l nhn vt u tin trong danh sch cc th c lu tr trong th

    vin. Bm vo tn Ball trong bng Library, bn thy chn dung ca nhn vt

    Ball hin ra pha trn danh sch.

    Th vin cn l ni lu tr nhiu th khc, chng hn nhng m thanh cn

    dng cho chng trnh Flash ca bn.

    Sau thao tc chuyn i hnh v qu banh thnh nhn vt, qu banh trn sn

    khu dng nh khng c g thay i. Thc ra c thay i ln: qu banh

  • trn sn khu ch l mt th hin (instance) ca nhn vt Ball trong th vin.

    Mun c nhiu qu banh, bn c th to ra nhiu th hin khc ca nhn vt

    Ball. Hot cnh ca bn c th c rt nhiu qu banh nhng dung lng tp

    tin fla tng khng ng k so vi trng hp ch c mt qu banh. Ngoi ra,

    nu bn chnh sa chi cho nhn vt Ball trong th vin, mi th hin ca

    nhn vt u thay i. Cu trc nhn vt-th hin em n nhng li ch

    tuyt vi!

    Trc mt, iu nn lm ngay l t tn ring cho th hin u tin ca nhn

    vt Ball. Vi qu banh trn sn khu ang tnh trng c chn, bn bm

    vo thanh tiu Properties cnh di ca s Flash (hoc n Ctrl+F3)

    m bng Properties (hnh 2), ni trnh by cc thuc tnh ca th hin ang

    c chn. Trong bng Properties, bn bm vo c dng ch (tn ca th hin) v g tn ball1 (ng : y l th hin u tin ca

    nhn vt Ball).

    Nu trn sn khu ch c mt th hin duy nht ca nhn vt, bn c th gi

    th hin l nhn vt. Nhiu ngi lun dng thut ng nhn vt thay

    cho th hin. Khng sao ht, min l bn hiu khi nim.

    Bm vo thanh tiu Properties dp bng Properties, bm vo u

    trn sn khu thi chn th hin ball1, bn bt u vic lp trnh cch bm

    vo thanh tiu Actions (hoc g phm F9) m bng Actions (hnh 3), ni

  • dng ghi cc cu lnh ActionScript. ActionScript l tn ca ngn ng lp

    trnh dng to ra kch bn cho nhng nhn vt Flash. Bm vo khung son

    tho cn trng trn ca bng Actions, bn g cu lnh:

    ?

    1 ball1._xscale = 200;

    Cu lnh va nu lm cho thuc tnh _xscale ca nhn vt ball1 c tr s l

    200 (gn tr s 200 cho bin _xscale ca nhn vt ball1). iu ny ngha l

    nhn vt ball1 c ko dn 200% theo phng x (phng ngang).

    chy chng trnh (chng trnh hin ch c mt cu lnh), bn n

    Ctrl+Enter. Ca s Flash lp tc thay i, nhiu th c giu i. Gia ca

    s l mt khung trng c hnh qu banh bu dc, cho thy r rng cu lnh

    bn vit c thc hin nghim tc: qu banh c ko dn theo

  • phng ngang. Kch thc theo phng ngang ca qu banh bu dc gp

    i ng knh ca qu banh trn ban u.

    dp khung trng hin th kt qu ca chng trnh, bn bm nt gc

    trn, bn phi khung trng.

    Bi 3 :Khung cht ca hot cnh trong lp trnh Flash

    Bn vit cu lnh u tin trong Flash

    ball1._xscale = 200;

    v chy th chng trnh ch c mt cu lnh y. Trong cu lnh ,

    gia tn nhn vt ball1 v tn bin _xscale c du chm phn cch.

    Bin _xscale l bin c sn trong mi nhn vt ca Flash. V tri ca cu

    lnh c l bin _xscale ca nhn vt ball1.

    Ton b cu lnh c l gn tr s 200 cho bin _xscale ca nhn vt ball1.

    Khi khng s nhm ln, ta c th gi th hin ball1 ca nhn vt Ball l

    nhn vt ball1. Bn ch , cn c du chm phy (;) kt thc cu lnh.

    Xem li th mc cha tp tin fla, bn thy c thm tp tin mi thuc loi swf.

    Nu tp tin cha qu banh ca bn c tn Ball.fla, tp tin mi c to ra c

    tn Ball.swf (ch khc phn phn loi). Trc y, khi bn n Ctrl+Enter, Flash

    ghi xung tp tin chng trnh swf v chy chng trnh . Chnh tp tin

    swf mi l chng trnh chy c, c th dng trong trang Web. Vic

    chuyn i tp tin fla thnh tp tin swf chy c gi l bin dch (compile).

    i vi bn, swf l mt chng trnh. i vi ngi xem trang Web, swf l

    mt hot cnh (animation) hoc tr chi (game).

    Pha trn sn khu, trong bng Timeline, bn thy c mt thanh di vi cc s

    1, 5, 10, l s th t ca cc khung hnh (frame), gi tt l khung. Din

  • bin ca chng trnh trong Flash theo dng thi gian ging nh mt on

    phim, nn cng c khi nim khung hnh. Mi ngay di thanh ghi s

    th t biu din mt khung hnh. Di nh vy gi l thi tuyn (timeline).

    Trong bng Timeline, bn thy s 1 c mt mu hng (hnh 1). Ngi

    ta gi l u c (playhead). u c ang khung 1 cho bit bn ang

    xem khung 1 (nhng g hin c trn sn khu l ni dung ca khung 1). Trong

    tng ng vi khung 1 c ch a be b, ng ni rng c cu lnh

    ActionScript c ghi khung 1.

    Ni dung ca khung 1 mc nhin c duy tr trong cc khung tip theo tr

    khi bn ch ng thay i. Gi s bn mun khung 5, qu banh tr v kch

    thc bnh thng, khng b ko dn theo phng ngang na.

    Mun vy, trc ht bn bo cho Flash bit c s thay i khung 5 bng

    cch bm-phi vo khung 5 (ta c th gi tt nh vy thay v ni r tng

    ng vi khung 5), chn mc Convert to Keyframes trong trnh n va hin

    ra. Thao tc ny chuyn i khung thng thnh khung then cht (keyframe),

    gi tt l khung cht, gip Flash hiu rng phi cn thn xem xt li mi th

    khung 5 v n khc vi khung trc.

    Chnh bn to ra s khc bit khung 5 bng cch bm vo khung son tho

    ca bng Actions (nu khng thy n, bn g phm F9) v g cu lnh:

  • ?

    1 ball1._xscale = 100;

    Cu lnh nh vy gn tr 100 cho bin _xscale ca nhn vt ball1, quy nh

    co dn theo phng ngang ca ball1 l 100%, tc l khng co dn g na.

    Vo lc chy chng trnh, khi hin th n khung 5, Flash s thi hnh cu

    lnh m bn va vit.

    Quan st thi tuyn, bn thy u c nhy n khung 5 (hnh 2), ngha l

    nhng g bn thy trn sn khu thuc v khung 5. Ti khung 5 c du trn

    mu en cho bit l khung cht. Khung 5 cng c ch a ging nh khung 1

    ni rng c cu lnh ActionScript c vit cho khung 5. Nhn ra du trn

    en khung 1, c l bn thc mc ngay: Vy khung 1 cng l khung cht?.

    Vng, ng vy, khung 1 lun lun l khung cht theo mc nh.

    Khung thng ngay trc khung cht c nh du bng mt du ch nht

    mu trng. Du nh vy cho thy r s kt thc ca mt lot khung ging

    nhau.

    n Ctrl+Enter bin dch v chy chng trnh, bn thy qu banh php

    phng lin tc do cu lnh ActionScript khung 1 v khung 5 c thi hnh

    lp i lp li. ng ca s Ball.swf (ca s trnh din hot cnh) va m, ri

    g phm F12 (hoc chn File > Publish Preview > Default HTML), bn thy

  • ca s trnh duyt xut hin, trnh by tp tin Ball.html. Qu banh ca bn

    din tr thoi mi trong ca s trnh duyt. l nh tp tin Ball.html c

    cha lin kt tr n tp tin Ball.swf. iu ny gip bn hnh dung hot cnh

    ca mnh trng ra sao khi c t trong trang Web.

    Xem xong, bn ng ca s trnh duyt, tr v ca s Flash, n Ctrl+S lu

    li thnh qu ca mnh trong tp tin Ball.fla.

    Bi 4 : Hnh vi ca nhn vt T hc lp trnh Flash

    Bn hy m li tp tin fla cha qu banh. Do hnh nh qu banh c

    ko dn theo phng ngang hin th trong cc khung 1-4, trong khi hnh

    nh qu banh bnh thng ch hin th trong mt khung duy nht (khung

    5) nn bn thy khng r lm s php phng ca qu banh khi chy

    hot cnh.

    mt c thi gian nhn bit hnh nh khung 5, bn bm-phi vo khung

    10 trong thi tuyn, chn mc Insert Frame. Thao tc ny to thm cc khung

    6-10 (hnh 1). l cc khung thng nm sau khung 5 (khung cht) nn c

    ni dung ging ht khung 5. khung 10 c du ch nht mu trng, nh

    du s kt thc ca mt lot khung ging nhau. Hot cnh ca bn gi y c

    tt c 10 khung. Bn n Ctrl+Enter xem th nha.

  • ng ca s trnh din hot cnh, bn hy ly thm mt qu banh na t th

    vin. C th, bn g phm F11 m bng Library, tr vo mc Ball trong

    bng (hoc tr vo hnh qu banh ngay trn mc Ball), ko n vo sn

    khu. Bn c ngay th hin th hai ca nhn vt Ball trn sn khu.

    Nhn vo thi tuyn, bn thy cc khung 5-10 c t en. l cch hin th

    nhc bn rng qu banh th hai ch hin din trong cc khung 5-10 ging

    nhau m thi. Thao tc to thm qu banh khung 10 khng c hiu lc vi

    lot khung ging nhau 1-4. n Ctrl+Enter, bn thy qu banh th hai chp

    chp v n khng hin din trong cc khung 1-4.

    to c qu banh th hai hin din trong mi khung ca hot cnh,

    khng b cch tr bi s hin din ca cc khung cht, bn cn c mt lp

    (layer) mi. Bn n Ctrl+Z hy b thao tc to qu banh th hai va thc

    hin, bm vo biu tng Insert Layer (gc di, bn tri bng Timeline)

    to thm lp mi mang tn Layer 2 nm bn trn lp Layer 1 c sn. Xong,

    bn li ko qu banh t th vin vo sn khu (hnh 2). n Ctrl+Enter, bn

    thy qu banh th hai khng chp chp nh trc na v n hin din trong

    mi khung.

  • Vic gii quyt vn nho nh va t ra gip bn hiu c cu trc lp

    ca Flash. Hot cnh c th gm nhiu lp chng ln nhau. Mi lp c nhng

    khung cht ring bit.

    Qu banh trong lp Layer 2 hin thi cha nhc nhch g ht. Bn c th p

    dng kinh nghim t qu banh th nht cho qu banh th hai: t tn cho qu

    banh th hai l ball2, to khung cht v tr ty trong thi tuyn ca Layer 2

    v ghi cu lnh ActionScript ball2._xscale = ti cc khung cht.

    Tuy nhin, l chuyn c, c l khng cn lp li. Bn c th t cu hi:

    Nu nh c hng chc qu banh trn sn khu hot ng gng nhau, l no

    c phi lp trnh ln lt cho tng qu banh?. Trong trng hp nh vy,

    bn nn lp trnh cho nhn vt trong th vin thay v lp trnh cho tng th

    hin ca nhn vt trn sn khu. Nh vy, mi qu banh khi c a t th

    vin vo sn khu u t bit php phng, khng cn ch dn g na.

  • thc hin nh va nu, trc ht bn xa Layer 1 bng cch chn Layer

    1 trong ca s Timeline v bm vo biu tng thng rc . Lm nh vy

    ngha l xa i qu banh th nht v mi din xut ca n, ch li qu

    banh th hai cha bit din xut.

    lp trnh cho nhn vt Ball, bn bm kp vo hnh qu banh trong bng

    Library. Sn khu bin mt, thay vo l nhn vt Ball trn nn trng. Mi

    vic bn sp lm ch tc ng vo nhn vt Ball. Tuy nhin, nu thy nhn vt

    Ball ang trong tnh trng c chn (trng m m), bn bm vo nn

    trng thi chn.

    Bn g phm F9 m bng Actions, g cu lnh cho khung 1:

    1|

    _xscale = 200;

    1|

    Khc vi trc, trong cu lnh va nu ta khng cn ghi tn ca th hin no

    c v y cu lnh c vit bn trong nhn vt Ball, Flash t ng hiu

    rng bin _xscale l thuc tnh ca nhn vt Ball. Thi tuyn trong ca s

    Timeline cng l ca ring nhn vt Ball.

    Nh tng lm, bn bm-phi vo khung 5 trong thi tuyn, chn Insert

    Keyframe, g cu lnh trong bng Actions:

    1|

    _xscale = 100;

    1|

  • Bn bm-phi vo khung 10, chn Insert Frame chn thm cc khung

    thng 6-10. Thao tc bn va lm quy nh xong hnh vi ca nhn vt.

    Bn chn mc Scene 1 (trn bng Timeline) tr v vi sn khu. a vo

    sn khu thm hai qu banh na t th vin v n Ctrl+Enter, bn thy c ba

    qu banh u php phng nh nhau.

    Bi 5 : Hnh vi ca th hin T hc lp trnh Flash

    Bn to c hot cnh gm ba qu banh php phng. l ba th

    hin ca nhn vt Ball trong th vin, l nhn vt c hnh vi php

    phng. Tuy nhin, s c nhng lc bn mun mt th hin no c

    hnh vi khc bit vi ng loi ca n. Flash cho php bn lp

    trnh cho ring th hin c chn.

    Trong ba qu banh trn sn khu, bn hy bm chn mt qu banh v g

    phm F9 m bng Actions (hnh 1). Bm vo khung son tho ca ca s

    Actions, bn g ni dung nh sau:

    1

    2

    3

    4

    5

    onClipEvent(mouseDown) {

    _y = _y + 20;

    }

    Nhng g bn ghi trong bng Actions theo cch nh vy ch c hiu lc i vi

    th hin c chn. y khng cn l mt cu lnh ActionScript nh trc,

    m l mt on m ActionScript b n c gi l hm (function). Phn u

    tin onClipEvent l tn hm. Phn ghi trong cp du ngoc l i mc

  • (parameter, argument) ca hm. i mc ca hm ( y c th l

    mouseDown) cung cp thng tin cho hot ng ca hm. Hot ng ca hm

    c din t bi thn hm, l phn nm trong cp du gp { }. Phn thn

    hm thng c ghi tht vo trong d phn bit vi tn hm (iu ny

    khng bt buc).

    Hm onClipEvent dng din t vic cn lm khi xy ra mt tnh hung

    (event) no i vi th hin ang xt. Ngi ta gi l hm x l tnh

    hung (event handler). Khi lp trnh cho th hin (quy nh hnh vi ca n),

    bn ch c php vit cc hm x l tnh hung, khng th vit cu lnh ty

    bn ngoi phm vi ca hm x l tnh hung.

    Vi i mc l mouseDown, hm onClipEvent tr thnh hm x l tnh hung

    bm chut, ngha l n s c thi hnh khi ta bm chut mt pht (bm

    phm tri). Phn thn hm ch gm mt cu lnh _y = _y + 20; nhm ni rng

    ly bin _y cng vi 20, ri ly kt qu ca php cng gn vo bin _y.

    Ni cch khc, cu lnh va nu lm cho tr ca bin _y tng thm mt lng

    l 20 im nh hoc 20 pi-xn (pixel).

    Bin _y l bin c sn bn trong mi th hin, quy nh tung ca th hin

    trn sn khu. Du gch di trong tn bin _y nhm nhn mnh rng y l

    bin c sn, khng phi bin do bn to ra.

    Chc l c c bin _x bn trong mi th hin, quy nh honh ca th hin

    trn sn khu?. Bn on ng. y ta ch thay i bin _y, khng thay i

    bin _x, do th hin c chn ch dch chuyn theo phng thng ng.

  • n Ctrl+Enter chy chng trnh, bn thy ba qu banh php phng nh

    c, dng nh khng c g mi. Tuy nhin, khi bn bm chut vo u

    trong hot cnh, qu banh va c lp trnh x dch xung di mt cht.

    C mi ln bn bm chut, qu banh li tt xung. iu ny khng xy ra vi

    hai qu banh cn li.

    C l bn thc mc: Tung tng ln, qu banh phi x dch ln trn ch

    nh?. Khc vi h ta dng trong ton hc ph thng, h ta dng trong

    lnh vc ha my tnh c trc y hng xung di (trc x vn hng qua

    phi). Trong Flash, gc trn, bn tri ca sn khu l gc ca h ta . Cch

    nh v bng h ta nh vy thc ra rt t nhin, ta nh khi d tm mt t

    trong vn bn, bn c t tri qua phi, t trn xung di.

    qu banh x dch ln trn (ngc chiu trc tung), bn phi cho tung

    gim. Bn c th sa cu lnh trong thn hm thnh _y = _y 20; (lm cho tr

    ca bin _y gim i 20). Th chy chng trnh, bn thy r iu .

    Thay v vit _y = _y 20; bn c th vit cch khc: y -= 20; . Tng t, thay

    v vit _y = _y + 20; bn c th vit: y += 20; . Cng nh du gn =, du -= v

    += rt thng dng khi lp trnh. Chng m t thao tc nht nh trn bin no

    nn c gi l cc tc t (operator).

  • Nu mun qu banh t di chuyn, khng cn i bm chut, chc l ch cn

    vit cu lnh _y += 20; thay v t n vo bn trong hm x l tnh hung?.

    Khi hc lp trnh, bn s c rt nhiu thc mc. Nhng lc nh vy, bn c

    mnh dn kim tra d on ca mnh. Xa hm x l tnh hung, ch ghi cu

    lnh n gin _y += 20; v n Ctrl+Enter, bn thy chng trnh chy c,

    nhng vic bm chut khng cn tc dng nh trc. Pha bn phi bng

    xut hin bng Output vi nhng dng ch nhng nht (hnh 2). Trong bng

    , t u tin Error cho bn bit chng trnh ca mnh c li. Thng bo li

    Statement must appear within on/onClipEvent handler nhc bn rng cu lnh

    phi c t bn trong hm x l tnh hung onClipEvent. y l quy nh

    bt buc khi bn mun to ra hnh vi cho ring th hin c chn.

    Bi 6: Cu lnh iu kin T hc lp trnh Flash Bn thy thng bo li xut hin bng Output. Khi bn dng chng trnh

    (ng ca s swf), thng bo li vn cn lu li trong bng Output pha phi ca

    s Flash bn nghin ngm.

    Li nh vy gi l li lc bin dch (compile-time error). Chng trnh khng chy c

    nu c li lc bin dch. Nu chng trnh chy c nhng li t ra k cc, khng

    ng nh d kin, ngi ta ni rng chng trnh c li lc chy (run-time error).

    Trong chng trnh ca mnh, bn c th ch ng a thng bo ra bng Output. Nh

  • vy, khi chy chng trnh, bn d dng theo di din bin thc t, d dng pht hin

    nguyn nhn gy ra li lc chy. th a thng bo ra bng Output, bn hy bm

    chn qu banh ang c li bin dch, g phm F9 m li bng Actions (nu cn). Trong

    bng Actions, bn xa cu lnh sai, g on m mi nh sau:

    onClipEvent(mouseDown) {

    _y -= 20;

    trace(Ti i ln y.);

    }

    Hm onClipEvent gi y c hai cu lnh. Cu lnh u tin lm cho qu banh x dch

    ln trn 20 im nh. Cu lnh th hai l cu lnh gi hm trace, lm cho qu banh bit

    thng bo v hnh ng ca mnh! Thng bo Ti i ln y l i mc ca hm trace.

    V mt cu trc, thng bo Ti i ln y l mt chui k t, gi tt l chui (string).

    Dng b g UniKey thng dng, bn d dng to ra k t Vit c du trong chui. Khi

    dng chui, bn ng qun m u v kt thc chui bng du nhy ().

    n Ctrl+Enter chy chng trnh, bn thy mi ln bm chut, qu banh x dch ln

    trn v thng bo Ti i ln y xut hin bng Output (hnh 1). Bn hy bm chut

    lin tip nhiu ln thy qu banh i mt tiu. l khi tung _y vt ra ngoi phm

    vi hin th ca sn khu.

  • qu banh khng i mt, bn dng chng trnh, sa ni dung hm onClipEvent nh

    sau:

    onClipEvent(mouseDown) {

    if(_y > 0) {

    _y -= 20;

    trace(Ti i ln y.);

    }

    }

    Nhng g bn va vit bn trong hm onClipEvent l mt cu lnh iu kin. Cu lnh y

    ng : nu tung _y ca qu banh ln hn 0 th mi x dch qu banh v a ra thng

    bo Ti i ln y bng Output. iu kin tung _y ln hn 0 phi c vit trong

  • cp du ngoc ( ), t sau t if. Nhng vic cn lm khi iu kin c tha phi c

    vit bn trong cp du gp { }, t sau cp du ngoc ( ). Flash hiu c nhng g

    bn vit, cn tun th nghim ngt cc quy tc va nu.

    Chy li chng trnh v bm chut nhiu ln, bn thy qu banh rt cuc dng li,

    khng thm nhc nhch na. l khi iu kin tung _y ln hn 0 khng c

    tha, tc l khi _y nh hn hoc bng 0. Bn ch , tung ca qu banh l tung ca

    im mc. Chnh bn quy nh im mc nm gia cnh di khung bao ca qu

    banh.

    Nu mun qu banh ni nng g khi iu kin tung _y ln hn 0 khng c

    tha, ch khng im lm, bn vit thm vo hm onClipEvent:

    onClipEvent(mouseDown) {

    if(_y > 0) {

    _y -= 20;

    trace(Ti i ln y.);

    }

    else {

    trace(Ti khng i na.);

    }

    }

    T else gip bn din t trng hp ngc vi trng hp c nu bi t if. Vic cn

    lm khi iu kin tung _y ln hn 0 khng c tha phi c ghi bn trong cp

    du gp { } theo sau t else. Nh vit nh vy, lc chy chng trnh, qu banh thng

    bo Ti khng i na nu tung ca n khng ln hn 0. Li t chi cho bn thy

    qu banh tuy tr tr nhng vn hiu bn ang bm chut thc gic n.

    Vi hai qu banh cn li cha c c tnh, ta cng th lp trnh cho chng c hnh vi

    khc bit. Trc khi lm nh vy, bn nn cho hai qu banh cn li c mu khc cho d

    phn bit: mt xanh, mt cam chng hn. Bn khng th chn mu t khc nhau cho cc

    th hin khc nhau ca mt nhn vt nhng c th chn mu nhum (tint color) khc

    nhau cho chng. C th, bn hy chn qu banh cha c c tnh, n Ctrl+F3 m

    ca s Properties tng ng, chn Tint trong Color, bm vo mu k bn v chn

  • mu trong bng mu. Mun mu nhum ln t mu t, bn ghi 100% trong Tint

    Amount: . Bng cch , bn c c ba th hin ca nhn vt Ball c mu khc nhau

    (hnh 2).

    Bn chn qu banh mu xanh, g on m nh sau trong bng Actions:

    onClipEvent(mouseDown) {

    if(_yscale == 100) {

    _yscale = 200;

    }

    else {

    _yscale = 100;

    }

    }

    th on nhn hnh vi ca qu banh mu xanh, bn c chy chng trnh xem sao.

    Bi 7 : Hm x l tnh hung T hc lp trnh Flash

  • Trong hm x l tnh hung bm chut onClipEvent(mouseDown) ca

    qu banh mu xanh, bn vit cu lnh iu kin if(_yscale == 100).

    Cu lnh nh vy t iu kin nu bin _yscale ca qu banh mu

    xanh c tr bng 100. Bin _yscale xc nh t l co dn theo phng

    thng ng. Bn ch , du bng y (==) khc vi du gn (=) m

    bn tng dng.

    Biu thc iu kin _yscale == 100 c th ng hoc sai vo lc chy. Ngi

    ta cn ni kiu cch hn mt cht: biu thc _yscale == 100 c th c tr

    true hoc false. Nh c hm onClipEvent(mouseDown) ca qu banh mu

    xanh, mi khi bn bm chut vo lc chy, qu banh chuyn i qua li

    gia hai trng thi: c ko dn theo phng thng ng hoc khng.

    Qu banh mu v mu xanh th hin c tnh ca chng, ta cng nn

    cho qu banh mu cam din tr g . Bn bm vo qu banh mu cam, g

    phm F9 m bng Actions (hnh 1) v g on m nh sau:

    ?

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    onClipEvent(mouseDown) {

    if(_visible) {

    _visible = false;

    }

    else {

    _visible = true;

  • 12

    13

    14

    15

    }

    }

    Hm x l tnh hung bm chut onClipEvent(mouseDown) ca qu banh

    mu cam ni rng: nu bin _visible ca qu banh c tr l true th gn cho

    n tr false v ngc li. Khi bin _visible ca qu banh c gn tr false,

    qu banh tr nn v hnh! n Ctrl+Enter chy chng trnh, bn thy hm

    va vit rt hiu nghim: vi mi c bm chut, qu banh mu cam bin i

    hoc hin ra.

    din t iu kin nu bin _visible c tr l true, bn c th vit if(_visible

    == true). Tuy nhin, cch vit nu trn gn hn v c ngha tng ng.

    Bn cn c th vit gn hn na:

    ?

  • 1

    2

    3

    4

    5

    onClipEvent(mouseDown) {

    _visible = !_visible;

    }

    Trong , ta dng tc t khng, biu din bng du chm than (!). Khi t

    du chm than trc bin _visible, bn nhn c tr true nu bin _visible c

    tr false v ngc li. Kt qu tc ng ca tc t khng c gn tr li

    bin _visible. Ni khc i, cu lnh _visible = !_visible; cng c tc dng

    chuyn i tr ca bin _visible gia true v false.

    Bm chut nhiu ln vo lc chy chng trnh, c l bn hi hi mi tay

    v cht ngh: Phi chi my qu banh ny t ng din tr m khng cn ch

    bm chut. t c c m gin d , bn ch cn sa i mc

    mouseDown thnh enterFrame:

    ?

    1

    2

    3

    4

    5

    onClipEvent(enterFrame) {

    _visible = !_visible;

    }

    i vi hm x l tnh hung onClipEvent ca qu banh v qu banh xanh,

    bn cng sa nh vy. Khi , hm x l tnh hung bm chut tr thnh

    hm x l tnh hung chuyn khung. Bn nh, vo lc chy chng trnh,

    Flash khng ngng hin th cc khung lin tip. Mi ln khung mi xut hin,

    Flash gi hm onClipEvent(enterFrame) ca cc th hin (nu c). iu ny

    ngha l hm onClipEvent(enterFrame) ca cc th hin c gi mt cch t

  • ng v lin tc.

    Chy th chng trnh, bn thy khe re: c ba qu banh u hnh ng m

    khng ch bn ch o, to nn hot cnh vui nhn. Nu thy hot cnh din

    bin qu nhanh, bn dng chng trnh, gim tc chy khung bng cch

    bm kp vo tc cnh di bng Timeline, bm kp vo Frame rate

    trong hp thoi va hin ra (hnh 2), g 6 v g Enter (gim tc t 12

    khung mi giy xung cn 6 khung mi giy).

    Trong khi qu banh xanh v cam rt nng n, qu banh khin bn hi

    phin lng v n dng li khi ng trn v ng yn lun. Chc bn s ngh:

    Gi nh qu banh lin tc chy ln chy xung th vui hn. thc hin

    iu ny, bn chn qu banh , sa i trong bng Actions nh sau:

    ?

    1

    2

    3

    4

    5

    6

    7

    onClipEvent(load) {

    step = 20;

    }

    onClipEvent(enterFrame) {

  • 8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    if(_y < 0 || _y > 500) {

    step = -step;

    trace("Ti i chiu y.");

    }

    _y += step;

    }

    Nh bn thy, trong cu lnh thay i tung _y ca qu banh , thay v ghi

    s c th x dch qu banh tng bc c nh nh trc _y += 20; gi y

    ta dng mt bin, gi l step (bn ty t tn cho bin): _y += step;.

    Khi qu banh ng trn hoc sn, ch cn i du cho tr ca bin step, qu

    banh s i chiu chuyn ng. C th, cu lnh if(_y < 0 || _y > 500) din t

    trng hp ng trn hoc sn: nu _y c tr nh hn 0 hoc _y c tr ln

    hn 500 (du || ngha l hoc). Cu lnh step = -step; dng i du cho

    tr s ca bin step.

    Cu lnh step = 20; t bn trong hm onClipEvent(load) dng gn tr ban

    u 20 cho bin step. Hm onClipEvent(load)c gi l hm x l tnh

    hung khi ng v n c gi khi khi ng hot cnh. Nu khng c hm

    nh vy, bin step c tr ban u mc nh l 0. Khi , c cu lnh thay i

    tung _y ln cu lnh i du cho tr s ca bin step khng c tc dng g

    ht.

  • Bi 8 : Thuc tnh ca th hin T hc lp trnh Flash

    Khi chi a vi nhng qu banh (cc th hin ca nhn vt Ball), bn

    bit n cc bin c sn bn trong tng qu banh, cho bit trng thi

    ca qu banh: _x, _y, _xscale, _yscale, _visible. Cc bin nh vy gi l

    cc thuc tnh (property) ca th hin. Khng ging nh bin do bn t

    to ra (nh bin step cho qu banh mu ), khi bn thay i mt thuc

    tnh ca th hin no, trng thi ca th hin t ng thay i. Chng

    hn, khi gn tr false cho bin _visible ca qu banh, qu banh lp tc

    bin mt.

    tm hiu thm cc thuc tnh khc ca th hin, bn nn to nhn vt mi.

    Ln ny ta v hnh vung thay i khng kh. Trc ht, bn bm kp

    vo tn lp Layer 2 trong bng Timeline, g Balls, ri g Enter. Lm nh vy

    i tn lp thnh Balls, ng rng lp ang xt l lp dnh cho cc qu

    banh.

    Bn hy to lp mi dnh cho cc hnh vung. Bn bm nt to lp

    mi (gc di, bn tri bng Timeline), bm kp vo tn lp mi Layer 3 v

    g Squares. tp trung ch vo cc hnh vung sp to ra, bn cho cc

    qu banh bin mt bng cch bm vo du chm ca hng biu th lp Balls

    trong bng Timeline, ct c hnh con mt . Cc qu banh ch c giu i

    vng vu cho bn khi lm vic, chng vn gp mt bnh thng khi

    bn chy chng trnh.

    Bn v hnh vung bng cch chn cng c Rectangle hp cng c, tr vo

    u trn sn khu, gi phm Shift v gi phm tri ca chut, ko chut qua

  • phi, xung di. Nh bn gi phm Shift, hnh khung c v ra l hnh

    vung. Bn nn t mu cho hnh vung khc vi cc qu banh, mu xanh l

    chng hn (hnh 1).

    Bn bm vo cng c chn , bm vo hnh vung xanh l chn v g phm

    F8 chuyn hnh c chn thnh nhn vt. Hp thoi Convert to Symbol

    hin ra. Bn g Square t tn cho nhn vt mi (hnh 2). phn

    Registration trong hp thoi, bn thy im mc nm tm nhn vt theo

    mc nh. Khng cn thay i im mc, bn g Enter. Hnh vung va v to

    nn nhn vt Square. Hnh vung trn sn khu tr thnh th hin ca nhn

    vt Square.

  • Hnh vung xanh l ang tnh trng c chn. Bn g phm F9 m

    bng Actions, vit hai hm x l tnh hung cho hnh vung c chn nh

    sau:

    ?

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    onClipEvent(load) {

    step = 10;

    }

    onClipEvent(enterFrame) {

    _rotation += step;

    }

    Trong , hm x l tnh hung khi ng to ra bin step cha tr s 10, hm

    x l tnh hung chuyn khung cng bin step vo thuc tnh _rotation ca

    hnh vung. Nh vy, mi ln chuyn khung, gc quay ca hnh vung li tng

    thm 10. Bn ch , bin step ta dng y khng phi l bin step c

    dng cho qu banh mu . Hai bin step tuy cng tn nhng c phm vi

    (scope) khc nhau, khng c dy m r m g ht.

    n Ctrl+Enter chy chng trnh, bn thy hnh vung quay u do gc

    quay ca n t t tng ln mi ln chuyn khung. Nu c hnh vung

    quay hoi hoi, l no gc quay s tng n v cng?. Bn yn tm, thc

    ra gc quay ca hnh vung ch c th nhn cc tr s t -180 n 180 (tnh

    bng ). Flash t ng iu chnh tr c gn cho bin _rotation c tr

  • thch hp trong khong .

    kim tra, bn c th ghi cu lnh theo di trace(Gc quay: + _rotation);

    sau cu lnh _rotation += step; trong hm OnClipEvent(enterFrame). Bng

    cch dng hm trace nh vy, khi chy chng trnh, bn s thy dng thng

    bo i loi nh th ny: Gc quay: 120. l nh chui Gc quay: c

    ghp vi tr s ca bin _rotation bng du cng.

    Nu khng mun c qu nhiu thng bo bng Output khi chy chng

    trnh, bn thm du // trc cu lnh gi hm trace:

    //trace(Gc quay: + _rotation);

    Flash hiu rng nhng g c ghi sau du // trn mt dng l phn ch thch,

    khng cn xt n khi bin dch. Do vy, t du // trc mt cu lnh gip

    bn tm thi v hiu ha cu lnh . Khi mun khi phc hiu lc ca cu

    lnh, bn ch cn xa du // trc cu lnh.

    Bn hy nhum mu tm cho hnh vung hin c, g phm F11 m bng

    Library v ko hnh vung xanh l t th vin vo sn khu, to thm mt th

    hin na ca nhn vt Square (hnh 3). Trong bng Actions, bn vit hm x

    l tnh hung nh sau cho hnh vung xanh l:

    ?

    1

    2

    3

    4

    5

    6

    7

    8

    onClipEvent(mouseMove) {

    trace("_xmouse: " + _xmouse);

    trace("_ymouse: " + _ymouse);

    trace("_alpha: " + _alpha);

  • 9

    10

    11

    _alpha -= 1;

    }

    Bn chy chng trnh th on nhn ngha ca nhng thuc tnh m

    bn cha bit. Bn s c p n vo k sau.

    Bi 9 : Nhn vt phc hp T hc lp trnh Flash

    Bn hy chnh sa nhn vt Square theo cch n gin: chn nhn vt

    Ball trong danh sch, ko qu banh trong khung pha trn danh sch, t

    ngay trn hnh vung trong khung ln gia (hnh 1). Lm nh vy,

    nhn vt Square c thm mt b phn mi l nhn vt Ball. Nhn vt

    Square tr thnh nhn vt phc hp, cha ng bn trong n mt nhn

    vt khc.

    Bm vo mc Scene 1 pha trn bng Timeline thot khi ch chnh

    sa nhn vt Square, tr v vi sn khu, bn thy hai th hin ca nhn vt

    Square gi y u bao gm mt hnh vung v mt hnh trn. Lc chy

    chng trnh, hai th hin ca nhn vt Square vn c hnh vi nh trc, ch

  • khc ch c thm qu banh lin tc php phng (hnh 2). Nhn vt Ball tr

    thnh mt b phn ca nhn vt Square nhng khng h qun i bn nng

    ca n.

  • Bi 10 : Hm c sn trong Flash T hc lp trnh Flash

    C l bn ang nng lng mun lp trnh tr chi g th v vi Flash.

    Tuy vy, bn cn kin tr tm hiu nhng khi nim lp trnh c bn. Khi

    c nn tng vng vng, bn mi c th t do sng to. Thc ra vn c

    nhiu iu th v trong kin thc c bn.

    Ngoi hm trace() m bn tng dng vi ln theo di din bin ca chng

    trnh, cn kh nhiu hm c sn (built-in function) khc trong Flash, lm

    th vic. Gi l hm c sn phn bit vi hm do bn t to ra, t t tn

    (user-defined function). Bn cn bit cch dng hm c sn trc khi th to

    ra hm c chc nng nh .

    Bn hy khi ng Flash v chn Flash Document to tp tin mi. Bn g

    phm F9 m bng Actions. Ni cho r, dng tiu ca bng l Actions

    Frame, ng rng nhng cu lnh bn vit trong bng c hiu lc i vi

    khung hin hnh, s c thi hnh khi Flash hin th khung vo lc chy.

    Khc vi trng hp lp trnh cho nhn vt hoc th hin, y bn khng

    vit hm x l tnh hung. Bn g hai cu lnh nh sau:

    ?

    1

    2

    3

    result = Math.pow(2, 3);

    trace("2 ly tha 3: " + result);

    Cu lnh th nht tnh 2 ly tha 3 v gn kt qu cho bin mang tn result

    ( to ra mt bin, bn thoi mi vit tn bin ty v gn tr cho n). Cu

    lnh th hai trnh by tr ca bin result bng Output, gip bn bit kt qu

    tnh c ng hay khng.

  • Lc vit cu lnh th nht, sau khi bn g Math v du chm, Flash nhanh

    nhu a ra danh sch cc hm kh d (hnh 1). Bn g thm ch p, Flash

    on rng l hm ly tha pow. Thay v g tip ow, bn c th g Enter

    chp thun cho Flash ghi hm pow thay mnh. Tip theo, Flash nhit tnh a

    ra dng hng dn nhc bn rng i mc th nht ca hm pow l c s v

    i mc th hai l s m.

    Vit xong hai cu lnh, bn n Ctrl+Enter chy chng trnh. Khi hin th

    khung s 1 (ngoi khung s 1, bn cha c khung no khc), Flash thi hnh

    hai cu lnh c ghi khung . Kt qu xut hin bng Output cho thy

    Flash tnh ton nh thn: 2 ly tha 3: 8.

    C l bn thy hi l: Ti sao phi vit tn hm l Math.pow, thay v ch vit

    pow cho gn?. Vit Math.pow ngha l gi hm pow ca lp Math (lp ton

    hc). Nhng hm c sn ca Flash c t trong nhiu lp c tn khc

    nhau phn loi. Cc hm trong mt lp phc v cho mt lnh vc nht nh.

    Bn cn phn bit khi nim lp (class) kh tru tng y vi lp (layer)

    bng thi tuyn. Trong cng vic thc t, bn dng tng tng lp lp bng

    thi tuyn l tch bit nhng hnh v v nhn vt trn sn khu cho khi

  • ri.

    Bn c th yu cu Flash lin tip tnh ly tha vi c s l 2 v s m l 1,

    2,, 9 bng cch vit li on m ActionScript cho khung 1 nh sau:

    ?

    1

    2

    3

    4

    5

    6

    7

    for(i = 1; i < 10; i++) {

    result = Math.pow(2, i);

    trace("2 ly tha " + i + ": " + result);

    }

    Chy chng trnh, bn thu c ngay kt qu trong bng Output (hnh 2).

    Bn thy r cu lnh result = Math.pow(2, i); c thi hnh lp i lp li 9 ln.

    Ngi ta gi l mt vng lp (loop). Trong ln thi hnh u tin, bin i

    c gn tr 1. Mi ln lp li, tr ca bin i tng thm 1 so vi trc.

    Hai cu lnh tnh ly tha v xut kt qu c thi hnh lp i lp li l nh

    c ghi bn trong cp du gp { } sau dng lnh for(i = 1; i < 10; i++). Trong

    cp du ngoc ( ) sau t for, ta din t vic cn lm khi bt u vng lp

    (gn tr 1 cho bin i) v vic cn lm sau mi ln lp (tng tr ca i thm 1 v

    xem i c cn b hn 10 hay khng). Khi vit i < 10, bn a ra iu kin

    duy tr vng lp. Nu iu kin khng tha, vng lp kt thc.

  • Vi bin i cha tr l s nguyn, tng tr ca i thm 1, bn vit i++. Sao

    khng dng mt du cng thi nh?. Vng, mt du cng th t nhin hn

    nhng ngi ta phi dng tc t cng cng ++ phn bit vi tc t cng

    + thc hin php cng thng thng.

    Ni cho ng, tc t cng + trong ngn ng ActionScript khng hn l php

    cng thng thng. Khi vit i mc ca hm trace(), ta dng tc t

    cng ghp chui vi tr nguyn. Chc bn thy rng vit nh vy cng

    t nhin thi.

    Bi 11 : Cc hm t to trong Flash T hc lp trnh

    Flash

    Sau khi dng th hm Math.pow (hm pow ca lp Math), c l bn

    mun bit nhng hm c sn khc. tra cu cc hm c sn, bn tr

    vo cnh tri khung son tho trong bng Actions (trong ca s Flash,

    nu bng Actions cha m, bn g phm F9), sao cho con tr chut

    chuyn thnh dng mi tn hai u, ri ko chut qua phi. Bn thy

    l ra mt ca s b mt, cha ng cc tng th quan trng i vi

    vic lp trnh Flash (hnh 1).

    Th mc u tin Global Functions gip bn tm hiu nhng hm ton cc,

    tc nhng hm cn dng thng xuyn, khng nm trong lp no c. Th

    mc tip theo Global Properties lit k cc bin ton cc, tc nhng bin m

    bn c th dng bt c lc no khi vit chng trnh. Bin ton cc c

    dng chung cho mi nhn vt v th hin.

  • Th mc Built-in Classes gip bn tm hiu cc lp c sn. Bm vo th mc

    , bn thy cc th mc con, trong th mc Core lit k cc lp ct li.

    Th bm vo th mc Core, bm vo th mc Math, bm vo th mc

    Methods, bn thy r cc hm thuc lp Math. Tr vo tng hm, bn thy

    hin ra dng gii thch ngn gn v cng dng ca hm.

    Sau ny, khi lp trnh quen tay, bn s thng xuyn m ca s tra cu

    xem li cch dng cc hm c sn. Hin thi, bn ch cn bit s lc nh

    vy v ch tra cu. Bn hy bm nt c du tam gic cnh phi ca s tra

    cu dp n i.

    Ngoi vic dng cc hm c sn, bn s phi to ra hm ph hp vi nhu cu

  • ca mnh. Ngi ta gi l hm t to (user-defined function) nhm phn

    bit vi hm c sn.

    th to ra hm, bn xa sch ni dung hin c trong bng Actions (nu

    cn) v g on m nh sau:

    ?

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    function init() {

    num = 0;

    }

    function count() {

    num++;

    trace("S m hin nay l: " + num);

    }

    Vit nh vy ngha l bn nh ngha hai hm init() v count(). nh ngha hm

    bt u bng t function, nhm lm cho Flash hiu rng y l hm mi y

    nh!. Sau t function l tn hm do bn ty chn v cp du ngoc (). Tip

    theo, phn c ghi gia cp du gp {} l thn hm (function body), din t

    nhng vic m hm thc hin.

  • Hm init() gn cho bin num tr ban u l 0. Hm count() lm cho tr ca bin

    num tng thm 1 v th hin tr ca bin num trong bng Output. Bn c th

    hnh dung hm count() dng m th g . Bn gi hm count() m

    ti. Khi no cn m li t u, bn gi hm init() trc, sau gi hm

    count().

    th dng hai hm mi toanh ca mnh, bn ghi thm nh sau bn di hai

    nh ngha hm:

    ?

    1

    2

    3

    4

    5

    6

    7

    init();

    for(i = 0; i < 5; i++) {

    count();

    }

    Vit nh vy ngha l gi hm init(), ri gi hm count() nm ln. Thay v vit

    nm ln cu lnh count(); ta dng mt vng lp for theo cch thc m bn

    bit. n Ctrl+Enter chy chng trnh, bn thy dng thng bo v s m

  • hin ra nm ln ng nh d nh.

    nh ngha hm cn c th c vit theo cch khc nh sau:

    ?

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    init = function() {

    num = 0;

    }

    count = function() {

    num++;

    trace("S m hin nay l: " + num);

    }

    Thay v vit vng lp for, bn c th dng vng

    lp while:

    while(num < 5) {

    count();

    }

    Sa li chng trnh theo cch vit mi v chy th, bn thy kt qu trong

    bng Output hon ton ging nh trc. Quan st cch vit vng lp while,

  • bn hiu ngay: vng lp ny ch c duy tr khi iu kin num < 5 c tho.

    Sau khi bin num nhn tr s 5, iu kin num < 5 khng c tha na, vng

    lp kt thc ngay.

    Khi lp trnh, nu bn thy mnh ang vit i vit li mt nhm cu lnh no

    , cn ngh ngay n vic vit mt hm cha ng nhm cu lnh

    dng cho tin, khng nn chng trnh di l th vi nhiu on tng t.

    Sau khi nh ngha hm, ch cn mt cu lnh gi hm , bn c th gii

    quyt nhanh gn nhiu vic.

    Bi 12 : Tr chi rt bt T hc lp trnh Flash

    Vi nhng iu bit v Flash, bn c th bt tay vo vic thc hin

    tr chi rt bt n gin: mt con vt g rt theo bn, ni cho

    ng l rt theo con tr chut do bn iu khin. C th hnh dung con

    tr chut ang di chuyn di nc v mt con c hung d ang

    ui theo.

    Trc ht, bn m ca s Flash, bt u vi tp tin mi trng trn. Bn cn

    v mt hnh trn tng trng cho con c (tng tng l c nc). Khi

    chng trnh chy tt, ta s v con c mt cch t m. v hnh trn, bn

    bit rng cn dng cng c Oval Tool v gi phm Shift khi v trn sn

    khu. Xong, bn bm vo cng c chn Selection Tool , cng khung chn bao

    quanh hnh trn va v, chun b chn mu t (fill color) v mu nt (stroke

    color).

    hp cng c pha tri ca s Flash, bn ch phn Colors c hai mu.

    Bn bm vo mu trn, chn mu nt trong bng mu va hin ra. Tng

    t, bn bm vo mu di, chn mu t. Bn nn chn mu nt en v

  • mu t sng (mu cam chng hn) cho d thy con c ca mnh.

    hnh trn tr thnh nhn vt, bn g phm F8. Khi thy hp thoi Convert

    to Symbol, bn g Fish t tn cho nhn vt v g Enter. T y, hnh trn

    ang hin din trn sn khu l mt th hin ca nhn vt Fish.

    lp trnh cho con c, bn g phm F9 m ca s Actions Movie Clip

    (hnh 1). V th hin ca nhn vt Fish ang tnh trng c chn, nhng

    g bn sp ghi vo ca s Actions Movie Clip s quy nh hnh vi ca th

    hin. Bn bit rng khi mun din t hnh vi ca th hin, ta phi vit cc

    hm x l tnh hung. Bn vit hai hm x l tnh hung nh sau lm cho

    con c bit ui theo con tr chut:

    ?

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    onClipEvent(load) {

    step = 5;

    }

    onClipEvent(enterFrame) {

    if(_x + step < _root._xmouse)

    _x += step;

    else if(_x - step > _root._xmouse)

    _x -= step;

  • 16

    17

    }

    Trong hm onClipEvent(load), ta to ra bin step v gn tr c th cho n. Bin

    step xc nh bc dch chuyn ca c. Tr ca bin step cng ln, c dch

    chuyn cng nhanh.

    Hm onClipEvent(enterFrame) c gi mi khi Flash hin th mt khung.

    Hin thi, bn ch c mt khung nhng v Flash hin th khung lp i lp li

    vo lc chy, hm onClipEvent(enterFrame) vn s c gi lin tc.

    Trong hm onClipEvent(enterFrame), bit c c nn i ti hay khng (c

    nn gia tng honh _x ca c hay khng), ta ly honh _x ca c cng

    vi step v so snh kt qu vi honh ca con tr chut (tc

    _root._xmouse). Nu kt qu ca php cng y vn cn nh hn honh

    ca con tr chut (iu kin _x + step < _root._xmouse c tha), ta cho

    honh _x ca c tng thm mt bc: x += step; . Nu kt qu ln hn

  • honh ca con tr chut, r rng khng nn i ti v cn tip tc xt xem

    c nn i lui hay khng.

    bit c nn cho c i lui hay khng, ta ly honh _x tr i step v so

    snh kt qu ca php tr vi honh ca con tr chut. Nu kt qu

    vn cn ln hn honh ca con tr chut, nn cho c i lui bng cch gim

    honh _x mt bc: x -= step;. Ngoi cc trng hp xt, honh _x

    s c gi nguyn, tc l c ng yn.

    C l bn hi ng ng v cch vit hm onClipEvent(enterFrame). Dng

    nh phi dng cc cp du gp {} nh sau mi ng c php ca cu lnh

    iu kin:

    ?

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    onClipEvent(enterFrame) {

    if(_x + step < _root._xmouse) {

    _x += step;

    }

    else if(_x - step > _root._xmouse) {

    _x -= step;

    }

    }

  • Thc ra, nu phn din t vic cn lm khi iu kin c tha ch c mt

    cu lnh, ngn ng ActionScript cho php ta vit cu lnh y theo sau iu

    kin, khng cn t trong cp du gp.

    Th chy chng trnh, bn s thy khng c li bin dch. Bn a con tr

    chut qua tri (hoc phi), c cng bi qua tri (hoc phi). C cha bit bi

    ln, bi xung bt dnh con tr chut v ta cha hun luyn cho c lm

    iu . c bit rng nn bi ln hoc xung khi no, trong hm

    onClipEvent(enterFrame), bn cn xt n tung _y ca c v tung ca

    con tr chut _root._ymouse theo cch thc tng t nh lm i vi

    honh . Tr li vi chng trnh, bn vit thm vo hm

    onClipEvent(enterFrame) nh sau:

    ?

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    onClipEvent(enterFrame) {

    if(_x + step < _root._xmouse)

    _x += step;

    else if(_x - step > _root._xmouse)

    _x -= step;

    if(_y + step < _root._ymouse)

    _y += step;

  • 15

    16

    17

    18

    19

    else if(_y - step > _root._ymouse)

    _y -= step;

    }

    Th chy chng trnh, bn thy r c tr nn khn lanh hn hn.

    Bi 13 : Hm kim tra va chm T hc lp trnh Flash

    Trong tr chi rt bt n gin thc hin, bn hun luyn con c

    ca mnh cch thc rt ui mc tiu di ng l con tr chut. Vi hm

    onClipEvent(enterFrame) vit, con c mi ch rt, ch cha bt.

    Con c cn nhn bit thi im n chm vo c mc tiu cn la

    tong ln.

    Thc ra ta ch cn b sung mt cht na thi. Trng hp c bt kp con tr

    chut c th xem l trng hp c ng yn, khng phi di chuyn theo

    phng ngang cng nh theo phng dc.

    Bn hy bm chn con c trn sn khu, m bng Actions (g phm F9) v

    vit thm vo hm onClipEvent(enterFrame) c ni dung nh sau:

    onClipEvent(enterFrame) {

    caught = false;

    if(_x + step < _root._xmouse)

    _x += step;

    else if(_x step > _root._xmouse)

    _x -= step;

  • else caught = true;

    if(_y + step < _root._ymouse)

    _y += step;

    else if(_y step > _root._ymouse)

    _y -= step;

    else if(caught == true)

    trace(Bt c ri nh!);

    }

    Trong hm onClipEvent(enterFrame), trc ht ta to bin caught c tr ban

    u l false. Khi bit chc c khng cn di chuyn theo phng ngang, ta gn

    tr true cho bin caught lm hiu. Tip theo, nu bit chc c khng cn di

    chuyn theo phng dc, ta xt xem bin caught c tr l true hay khng. Khi

    , nu caught c tr l true, ngha l xy ra tnh trng c khng cn di chuyn

    theo phng ngang cng nh theo phng dc, cu lnh trace(Bt c ri

    nh!); thng bo h h rng con tr chut b bt.

    Chy th chng trnh v gi v chm chp c bt kp con tr chut,

    bn thy r nhng chi tit b sung trong hm onClipEvent(enterFrame) c

    hiu lc ra sao. Nhng mt khi ngi chi phi gi v thua, cuc chi qu d,

    mt ngha. Ta cn lm cho ngi chi bn rn hn, cng thng hn, bng

    cch by thm lut chi nh sau: trong khi b c ui, ngi chi phi tm

    mt con sao bin. Mi ln bm trng sao bin, ngi chi c thm mt

    im, sao bin xut hin ngu nhin v tr khc v c di chuyn nhanh hn.

    c sao bin, bn tm v hnh ngi sao n gin. Bn tr vo cng c v

    hnh khung Rectangle Tool , gi phm tri ca chut cht xu, chn cng c

    PolyStar Tool (cng c v a gic hoc hnh sao). n Ctrl+F3, bn thy bng

    Properties m ra, trnh by nhng quy nh lin quan n hot ng ca cng

  • c m bn ang cm trong tay. Bn bm nt Options m hp thoi Tool

    Settings (hnh 1). Trong , bn chn mc star Style v bm OK. Trong

    bng Properties, bn c th chn trc mu nt v mu t cho hnh sao sp

    v.

    Tr vo u trn sn khu, bn gi phm tri ca chut, ko chut qua

    phi, xung di, cng ra mt hnh ngi sao nm cnh.

    G phm V chuyn qua cng c chn Selection Tool, ban cng khung chn

    bao quanh hnh sao. Bn g phm F8 m hp thoi Convert to Symbol, g

    tn Star v g Enter. Thao tc nh vy to ra nhn vt sao bin mang tn

    Star. Hnh sao trn sn khu tr thnh mt th hin ca nhn vt Star.

    Ta cn lp trnh sao bin nhn bit con tr chut c chm vo n hay

    khng mi khi ngi chi bm chut. Mi khi b bm trng, sao bin c nhim

    v cng im cho ngi chi. G phm F9 m bng Actions tng ng vi

    th hin c chn (hnh 2), bn g on m nh sau:

    ?

    1

    2

    3

    4

    5

    onClipEvent(load) {

    score = 0;

    }

  • 6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    onClipEvent(mouseDown) {

    if(hitTest(_root._xmouse, _root._ymouse, true))

    {

    score++;

    trace("im: " + score);

    }

    }

  • Hm onClipEvent(load) ca sao bin to ra bin score ghi im cho ngi

    chi, c tr ban u l 0. Hm onClipEvent(mouseDown), chc bn vn nh,

    din t nhng vic cn lm khi ngi chi bm chut. bit v tr ca con

    tr chut c nm trong hnh sao hay khng, ta dng hm hitTest() c sn trong

    mi nhn vt Flash. Hm hitTest() cho kt qu l tr true hoc tr false ty theo

    con tr chut c chm vo th hin ang xt hay khng.

    Hai i mc u tin ca hm hitTest() l honh v tung ca con tr

    chut (_root._xmouse v _root._ymouse). Nu i mc th ba l false, hm

    hitTest() s kim tra xem con tr chut c nm trong khung bao ch nht

    (bounding box) ca th hin hay khng. V ta ghi i mc th ba ca hm

    hitTest() l true, hm hitTest() kim tra k cng hn, ch tr v cho ta tr true

    nu con tr chut thc s chm vo hnh sao.

  • Quan st cu lnh iu kin trong hm onClipEvent(mouseDown), bn hiu

    ngay: nu con tr chut chm vo sao bin, tr ca bin score c tng thm

    mt v thng bo xut hin bng Output cho ngi chi bit h t c

    bao nhiu im.

    Th chy chng trnh, bn thy tuy sao bin cha di chuyn c nh d

    nh nhng tr chi tr nn th v hn.

    Bi 14 : Hm tnh tr ngu nhin T hc lp trnh Flash

    Trong tr chi ang thc hin, ta d nh cho sao bin di chuyn ngu

    nhin mi khi c bm trng (xem nh ngi chi nht c sao bin

    v mt sao bin khc xut hin ti v tr bt k). Mun vy, trong hm

    onClipEvent(mouseDown) ca sao bin, bn gn tr ngu nhin cho

    honh _x v tung _y ca sao bin. Nhng trc tin bn cn lm

    quen vi hm tnh tr ngu nhin random() trong lp Math.

    Bn bm chn sao bin, m bng Actions MovieClip xem li chng

    trnh ca sao bin v ghi thm cu lnh hin th tr ngu nhin do hm

    Math.random() cung cp:

    ?

    1

    2

    3

    4

    5

    6

    onClipEvent(mouseDown) {

    if(hitTest(_root._xmouse, _root._ymouse, true))

    {

    trace("Tr ngu nhin: " + Math.random());

  • 7

    8

    9

    10

    11

    12

    13

    score++;

    trace("im: " + score);

    }

    }

    Th chy chng trnh, bn thy mi khi bm trng sao bin, sao bin thng

    bo mt tr ngu nhin bng Output. Bm sao bin nhiu ln, bn s nhn

    ra tr ngu nhin tr v bi hm Math.random() lun nh hn 1. Ni chnh xc,

    hm Math.random() cho ta tr ngu nhin ln hn hoc bng 0 v nh hn 1.

    Mun thu c tr ngu nhin trong khong ty , ta phi phng ln tr tr v

    ca hm Math.random().

    cho r rng, ta vit mt hm mi tnh tr ngu nhin trong khong ty

    v dng hm trong hm onClipEvent(mouseDown) ca sao bin. Chng

    trnh ca sao bin ch chp nhn cc hm x l tnh hung nn bn phi vit

    hm cn thit ch khc.

    Bm vo ch trng trn sn khu, bn thy chng trnh ca sao bin bin

    mt. Bng Actions Frame trc mt bn dng lp trnh cho khung u

    tin (hnh 1). Bn vit hm tnh tr ngu nhin ngon lnh hn, gi l

    getRandom(min, max), nh sau:

    ?

    1

    2

    3

    4

    function getRandom(min, max) {

    var num = Math.random();

  • 5

    6

    7

    8

    9

    10

    11

    num = num * (max - min);

    num = num + min;

    return num;

    }

    Hm getRandom(min, max) cho tr ngu nhin trong khong t min n max

    bng cch nhn tr tr v ca hm Math.random() vi khong cch gia max

    v min, tc max min, ri cng kt qu vi min. Cu lnh return num; lm

    cho hm getRandom(min, max) tr v kt qu tnh ton khi c gi. y l

    ln u tin bn vit mt hm c tr v mt tr s.

  • Ngoi ra, chc bn ch n t var trong cu lnh var num = Math.random();.

    Cu lnh ny to ra bin (variable) mang tn num cha tr tr v bi hm

    Math.random(). Vit t var khi to ra bin num, ta ng rng bin num l bin

    c to ra tm thi trong hm getRandom(). Bin nh vy gi l bin cc b,

    c xa khi b nh my khi hm getRandom() kt thc cng vic.

    Bn bm vo sao bin tr v vi chng trnh ca sao bin trong bng

    Actions -Movie Clip . Trong hm onClipEvent(mouseDown), bn gi hm

    getRandom() va vit th tnh tr ngu nhin t 0 n 400:

    ?

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    onClipEvent(mouseDown) {

    if(hitTest(_root._xmouse, _root._ymouse, true))

    {

    trace("Tr ngu nhin: " + _root.getRandom(0,

    400));

    score++;

    trace("im: " + score);

    }

    }

    C l bn thc mc: V sao phi vit _root.getRandom(0, 400), thay v vit

    n gin getRandom(0, 400)?. Nu bn khng dng tham chiu _root, khi

  • xem xt chng trnh ca sao bin, Flash khng bit rng phi c hm

    getRandom() khung 1 ca thi tuyn chnh, khc vi thi tuyn c dng

    bn trong th hin ca nhn vt sao bin.

    Th chy chng trnh v bm nhiu ln vo sao bin, bn thy r hm

    getRandom() ca ta cho tr ngu nhin nh hn 400.

    sao bin di chuyn khp sn khu, honh _x ca sao bin phi c tr

    bt k nh hn chiu rng sn khu v tung _y phi c tr bt k nh hn

    chiu cao sn khu. Bm vo ch trng trn sn khu thi chn sao bin,

    bn thy li chng trnh thi tuyn chnh. Bn chnh sa v b sung c

    ni dung nh sau:

    ?

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    function getRandomX() {

    return getRandom(0, 550);

    }

    function getRandomY() {

    return getRandom(0, 400);

    }

    function getRandom(min, max) {

    return Math.random()*(max - min) + min;

  • 16

    17

    }

    Nh bn thy, ta nh ngha thm hai hm mi: getRandomX() v

    getRandomY().

    Hm getRandomX() dng to ra tr ngu nhin ln hn hoc bng 0 v nh

    hn 550. Trong , 550 l chiu rng mc nh ca sn khu. Hm

    getRandomX() thch hp cho vic to ra honh ngu nhin bao qut chiu

    rng sn khu. Hm getRandomX() khng lm g nhiu, ch da hon ton

    vo tnh ton ca hm getRandom(min, max). Chiu cao mc nh ca sn

    khu l 400, do vy bn hiu ngay hm getRandomY() c vit ra dng

    vo vic g.

    Ngoi ra, v bn hiu cch tnh ton ca hm getRandom(min, max), ta vit

    li ni dung ca hm dng gn hn, c ngha tng ng.

    Chuyn qua chng trnh ca sao bin (bm vo sao bin), bn chnh sa

    nh sau:

    ?

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    onClipEvent(mouseDown) {

    if(hitTest(_root._xmouse, _root._ymouse, true))

    {

    _x = _root.getRandomX();

    _y = _root.getRandomY();

    score++;

  • 11

    12

    13

    14

    15

    trace("im: " + score);

    }

    }

    Th chy chng trnh, bn thy ln ny sao bin thc s di chuyn ngu

    nhin mi khi c bm trng.

    Bi 15 :Lin lc gia cc th hin T hc lp trnh

    Flash

    Bn lm cho sao bin x dch ngu nhin v tng thm 1 im cho

    ngi chi mi khi sao bin c bm trng. Khi , theo d nh, ta

    cn phi lm cho c chuyn ng nhanh hn. im ca ngi chi cng

    cao, c bi cng nhanh. C nh vy, tr chi mi ho hng! Chc chn

    c s bt c con tr chut vo lc no . Khi c bt c con tr

    chut, tr chi cn tr li t u: im ca ngi chi c gn li tr

    s 0. im cao nht t c s th hin ng cp ca mi ngi

    chi.

    Vi mc tiu nh vy, sao bin cn lin lc vi c yu cu tng tc. Ngc

    li, c phi yu cu sao bin cho ngi chi im 0 khi c bt c con tr

    chut. c v sao bin c th ni chuyn vi nhau, trc ht bn phi t

    tn cho chng. C l th hin ca nhn vt Fish, cn sao bin l th hin ca

  • nhn vt Star, c hai th hin ny u cha c tn ring.

    Bn hy bm vo c v n Ctrl+F3 m bng Properties. Bn bm vo c

    dng ch , g fish v g Enter (t tn cho c l fish).

    Bn bm chn sao bin. Bng Properties thay i, tng ng vi sao bin.

    Bn bm vo c dng ch , g star v g Enter (t tn

    ngn gn cho sao bin l star). Xong, bn bm vo thanh tiu ca bng

    Properties tm dp n i.

    Bn m bng Actions (trnh by chng trnh ca sao bin), vit thm mt

    cu lnh trong hm onClipEvent(mouseDown) nh sau:

    ?

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    onClipEvent(mouseDown) {

    if(hitTest(_root._xmouse, _root._ymouse, true))

    {

    _x = _root.getRandomX();

    _y = _root.getRandomY();

    score++;

  • 12

    13

    14

    15

    16

    17

    trace("im: " + score);

    _root.fish.step++;

    }

    }

    Cu lnh m bn va vit tng thm 1 cho tr s ca bin step bn trong c.

    din t bin step ca c trong chng trnh ca sao bin, bn phi ghi

    _root.fish.step, ch khng th ghi n gin fish.step. Tham chiu _root tr n

    sn khu, ni lu gi tn tui ca cc din vin.

    Bn cn iu chnh thm cht xu trc khi chy th chng trnh: bm-phi

    vo c, tr vo mc Arrange trn trnh n va hin ra, chn mc Bring to

    Front. Nh vy, c c t pha trc sao bin, gy kh d cho bn nhiu

    hn.

    Th chy chng trnh, bn thy cu lnh mi c hiu lc r rng: khi im

    ca bn cng tng (bt c cng nhiu sao bin), c cng hong ht, ra sc

    bo v sao bin. Khi c bt c con tr chut, ngi chi khng h hn g.

    iu ny khng cng bng.

    Bn hy ng ca s chng trnh v nhn vo bng Actions (lc ny ang

    trnh by chng trnh ca c). Bn ch trng hp bt c con tr

    chut din t phn cui ca hm onClipEvent(enterFrame). Bn chnh sa

    nh sau:

  • ?

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    onClipEvent(enterFrame) {

    ...

    else if(caught == true) {

    trace("Bt c ri nh!");

    _root.star.score = 0;

    step = 5;

    }

    }

    Cu lnh _root.star.score = 0; gn tr s 0 cho bin score bn trong sao bin,

    buc ngi chi tr li mc xut pht. din t bin score ca sao bin

    trong chng trnh ca c, bn phi vit _root.star.score, ch khng th vit

  • n gin star.score.

    Cu lnh step = 5; lm cho c bnh tnh tr li, bi chm nh lc u sau khi

    bt c con tr chut.

    Chy li chng trnh, va chi va lic nhn bng Output, bn s thy s

    cng bng ca tr chi c thit lp: khi c bt kp con tr chut, im tch

    ly ca bn mt sch!

    Khi tr chi ca bn chy trong trang web, ngi chi khng thy bng

    Output. Do vy, bn cn hin th im ngay trn sn khu.

    Bn bm vo cng c Text Tool (hoc g phm T), cng mt khung nh gc

    di, bn tri sn khu v g SCORE:. Bn m li bng Properties bng cch

    bm vo thanh tiu ca bng . Bm vo Text Type trong bng

    Properties, bn chn Static Text (thay cho Dynamic Text), quy nh rng

    khung ch ca bn c ni dung c nh, khng thay i. Ngi ta gi l

    khung ch tnh.

    Nu cn thay i phng ch v c ch, bn chn dng ch SCORE: (ko

    chut ngang qua dng ch), chn phng ch trong Font, bm kp vo

    Font Size v g tr s ty (20 chng hn).

    Bn cng mt khung khc bn phi dng ch SCORE: to khung ch mi

    (hnh 1). Trong bng Properties (lc ny tng ng vi khung ch mi), bn

    chn phng ch v c ch ging nh dng ch SCORE. Bm vo Var, bn

    g _root.star.score v g Enter. Thao tc nh vy to ra khung ch ng trnh

    by tr s ca bin _root.star.score (ni dung ca khung ch thay i theo tr

    s ca bin _root.star.score).

    Chy th chng trnh, bn thy khung ch ng th hin ng im s ca

    mnh (so vi thng bo bng Output).

  • Theo echip.com

    Bi 16 : V sao bin T hc lp trnh Flash

    Trong tr chi bt sao bin ang thc hin, mi khi c bt kp con tr

    chut, c yu cu sao bin cho im ca ngi chi tr v tr s 0. Tuy

    nhin, vo lc y ngi chi khng kp ch rng mnh t c bao

    nhiu im. i vi ngi chi, iu quan trng l ghi nh im cao

    nht m h t c sau nhiu ln chi. Do vy, bn trong sao bin, ta

    nn to thm mt bin ghi nh im cao nht t c.

    C th, bn bm vo sao bin trn sn khu, m bng Actions v vit thm

    vo chng trnh ca sao bin nh sau:

    ?

  • 1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    onClipEvent(load) {

    score = 0;

    highscore = 0;

    }

    onClipEvent(mouseDown) {

    if(hitTest(_root._xmouse, _root._ymouse, true))

    {

    _x = _root.getRandomX();

    _y = _root.getRandomY();

    score++;

  • 19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    if(score > highscore)

    highscore = score;

    trace("im: " + score);

    _root.fish.step++;

    }

    }

    Trong hm onClipEvent(load), ta to ra bin mi highscore vi tr ban u l

    0. Sau mi ln tng im cho ngi chi, ta u xt xem im mi c cao

    hn tr s ca bin highscore hay khng. Nu cao hn, ta gn im mi cho

    bin highscore. Khi bin score tr v tr s 0, bin highscore vn lu gi im

    cao nht ca ngi chi.

    Bn hy ng bng Actions. Vic cn lm tip theo l hin th im cao nht

    ca ngi chi. Vi cng c chn trong tay, bn cng khung chn bao quanh

    hai khung ch hin c (mt khung ch tnh c dng ch SCORE v mt

    khung ch ng hin th tr s ca bin score) v n Ctrl+C sao chp. Bn

    n Ctrl+V dn bn sao vo sn khu, bm kp vo khung ch SCORE,

  • sa ni dung thnh HIGHSCORE. Bm vo khung ch ng k bn, m bng

    Properties, bn sa ni dung trong Var thnh _root.star.highscore v g

    Enter (hnh 1). Nh vy, khung ch ng mi s hin th tr s ca bin

    highscore.

    Bn nn chy chng trnh ngay bit chc khung ch ng mi hot ng

    tt nh mong mun. Bn c th r r ngi khc tranh ti cng bn, xem ai

    t im highscore cao hn trong nm pht chng hn.

    Khi tr chi chy tt, bn c th bc qua giai on chm cht ngoi

    hnh. Ta bt u vi vic tt li v p giai ca sao bin. Bn bm kp vo

    sao bin chuyn qua ch chnh sa nhn vt sao bin. Mun ly tm

    nhn gn cho tin vic tn trang, bn chn cng c Zoom Tool (hoc g

    phm Z) v bm vo sao bin vi ln. Nu l nhn qu gn, bn chn

    Reduce hp cng c v bm vo sao bin lui ra xa.

    Bn cm ly cng c chn , bm vo u bn ngoi sao bin thi

    chn sao bin. a con tr chut vo mt cnh ca sao bin, bn thy con

    tr chut i dng , t sn sng gip bn chnh sa ng nt ca sao bin.

    Bn nm ko cnh sao bin un cong ty (hnh 2). Tht tuyt! C th,

    bn un cong mi cnh ca hnh sao kh cng ban u c c ng

    nt mm mi.

  • Khi hi lng v hnh dng sao bin, bn bm kp vo dng ch Layer 1

    bng Timeline , g tn Thn . Thao tc i tn lp nh vy gip bn nh rng

    lp ang xt cha thn ca sao bin. Bn bm vo du chm bn di hnh

    kha lp Thn c kha cng, khng th chnh sa.

    Bn to lp mi Layer 2 bng cch bm vo biu tng Insert Layer , ri i

    tn Layer 2 thnh Mt, ng rng lp mi s c dng cha mt ca

    sao bin.

    V mt rt d, bn chn cng c Oval Tool , bm vo Fill Color , chn mu

    t l mu en v v ra mt hnh trn nh. Bn bm vo cng c chn , cng

    khung chn bao quanh hnh trn en va v, n Ctrl+C sao chp, ri n

    Ctrl+V dn bn sao vo lp Mt. Bn ln lt ko hai hnh trn en vo

    gia sao bin, to nn cp mt.

    Bn kha lp Mt, to lp mi mang tn Ming. Bn v mt hnh -van dt

    bn di cp mt ca sao bin, dng cng c chn chnh dng -van, to

    nn ming ci xinh (hnh 2).

    Xong xui, bn bm vo mc Scene 1 thot khi ch chnh sa nhn

  • vt sao bin, tr v vi sn khu. Bn ng qun n Ctrl+S lu li thnh

    qu ca mnh

    Bi 17 : V c nc T hc lp trnh Flash

    M li tr chi bt sao bin trong Flash, bn bm kp vo hnh trn m

    ta gi l c nc chuyn qua ch chnh sa nhn vt Fish. Bn

    g phm Z ly cng c Zoom Tool , cng khung chn bao quanh hnh

    trn c c tm nhn gn, tp trung vo hnh trn.

    Bn i tn lp Layer 1 thnh Thn: bm kp vo Layer 1 bng thi tuyn,

    g Thn . Tn lp nh vy ng rng lp ang xt ch dng cha phn

    thn c. Nh t mi b phn ca hnh v vo lp ring, bn d dng chnh

    sa hnh v sau ny.

    Bn to lp mi Layer 2 bng cch bm vo biu tng Insert Layer , i tn

    Layer 2 thnh Mt. v mt, bn chn cng c Oval Tool . Trc khi v,

    bn nh chn mu t thch hp Fill Color .

    bn ngoi thn c, bn ln lt v ba hnh -van chng nhau to nn

    mt con mt . D tr sau ny s lm cho con mt nhc nhch, ta chuyn con

    mt va v thnh nhn vt hn hi. C th, bn ly cng c chn , cng

    khung chn bao quanh con mt, g phm F8 m hp thoi Convert to

    Symbol, g tn Eye v g Enter. Khi t tn cho nhn vt trong Flash, bn nn

    dng ting Vit khng du hoc ting Anh cho tin vic lp trnh.

    Nu cn co dn con mt c kch c nh , bn bm vo cng c Free

    Transform Tool v bm vo con mt. Bn ko mt trong cc du vung mu

    en va xut hin quanh con mt cho n khi t c kt qu mong mun.

  • Tr vo con mt sao cho con tr chut i dng thnh mi tn bn u , bn

    ko hnh vo phn trn thn c (hnh 1), n gn nh hnh trn. Bn n

    Ctrl+C sao chp con mt, n Ctrl+V dn con mt th hai vo lp Mt v

    ko con mt th hai n v tr thch hp, ngang vi con mt th nht.

    Bn to lp mi, t tn l Ming v v hai hnh -van dt chng nhau lm

    ming c. Bn nn v bn ngoi thn c cho d chnh sa. hai hnh -van

    va v dnh lin nhau thnh mt nhm (group), thun tin cho vic di chuyn,

    bn ly cng c chn , cng khung chn bao quanh hai hnh -van v n

    Ctrl+G. Xong, bn ko hai hnh -van vo thn c, t ngay di cp mt,

    to thnh ming c.

    Bn to lp mi, t tn l Vy, v hnh -van v dng cng c chn lm

    mo hnh -van pha tri, to thnh vy c . Ta cng d tr lm cho vy

    c ve vy nn cn chuyn vy c thnh nhn vt. Bn cng khung chn bao

    quanh vy c va v, g phm F8, g tn Fin v g Enter. Vy c tr thnh

    nhn vt mang tn Fin.

  • Bn bm kp vo vy c chuyn qua ch chnh sa nhn vt Fin. Trong

    bng thi tuyn ca vy c, bn bm vo khung 10, g phm F6. Thao tc nh

    vy lm cho thi tuyn ca vy c gm 10 khung (thay v ch c mt khung

    nh trc). Khung 10 tr thnh khung cht v c ni dung ging ht khung 1

    (hnh 2).

    Bn bm vo khung 1, n Ctrl+F3 m bng Properties. Trong Tween,

    bn chn mc Shape. Thao tc ny ni vi Flash rng bn mun to ra nhng

    hnh trung gian cho s bin i hnh dng gia hai khung cht. Du mi tn

    chy t khung 1 n khung 10 xut hin, chng t Flash hiu bn.

    V vy c khung 1 v khung 10 ging ht nhau nn vic to ra cc hnh

    trung gian cha thc s c ngha. Bn bm vo khung 5, g phm F6.

    Khung 5 cng tr thnh khung cht. Bn chn cng c co dn , ko du

    vung gia cnh tri vy c qua phi co hp vy c . Vy c khung 5

    c dng khc vi vy c khung 1 v khung 10. Php bin hnh ca Flash tr

    nn c ngha: vy c s co hp dn t khung 1 n khung 5 v n rng dn

    t khung 6 n khung 10 (tr li hnh dng c).

    Bn bm vo mc Fish pha trn bng thi tuyn tr v vi nhn vt Fish,

    sao chp vy c hin c c vy th hai. Bn chn Modify > Transform >

    Flip Horizontal lt ngang vy th hai. Bn t hai vy hai bn thn c,

    ko lp Vy xung di lp Thn vy nm sau thn (hnh 1).

    Bn n Ctrl+Enter, xem th c hot ng ra sao nha.

  • Theo echip.com

    Bi 18 : Din hot b phn T hc lp trnh Flash

    Khi v c nc, bn din hot (animate) cho vy ca n, khin vy c

    ve vy tht sinh ng. Ta hy thc hin mt vic kh hn: din hot mt

    c.

  • Ni c th, bn s lm cho c bit lic ngang lic dc: trng en ca mt

    lun dch chuyn bn trong trng trng, hng v pha con tr chut. Nh

    vy, ngi chi c cm gic c nc ca ta thc s khn lanh. Din hot cho

    mt b phn ca hnh v, lm cho n ht cng l vic rt thng xuyn

    trong cng on tinh chnh tr chi.

    Sau khi m li tr chi bt sao bin trong ca s Flash, bn g phm F11

    (hoc n Ctrl+L) m bng Library. Trong danh sch nhn vt, bn chn

    nhn vt Eye. Khung hnh pha trn danh sch lp tc hin th mt c. Bm

    kp vo hnh mt c trong bng Library, bn chuyn qua ch chnh sa

    nhn vt Eye. Sn khu bin mt, ch cn hnh mt c trn nn trng trng

    tri.

    Hin thi, hai mt ca c l hai th hin ca nhn vt Eye. Do vy, khi bn

    chnh sa nhn vt Eye, c hai mt c u thay i ging nhau.

    Trc khi chnh sa mt c, bn nn ly tm nhn gn thch hp. Cch chnh

    sa d dng nht l xa hnh v tm hin c (n Ctrl+A chn tt c v g

    phm Delete), ri v li mt cch cn trng. Mi phn ca hnh cn c t

    trong mt lp ring.

    Bn v mt hnh trn mu cam, di chuyn hnh trn sao cho im mc ca

    nhn vt Eye nm hi thp so vi tm hnh trn (hnh 1). Khi chn hnh trn

    di chuyn, bn nh chn c ng bin hnh trn (bm vo hnh trn, gi

    phm Shift v bm vo bin hnh trn). Nu c g cha ng , bn ch cn n

    ngay Ctrl+Z hy b thao tc va thc hin.

    Bn to lp mi Layer 2 v v mt hnh -van mu trng. Bn ch di chuyn

    hnh -van sao cho tm ca n trng vi im mc ca nhn vt Eye (hnh 1).

    Bn to lp mi Layer 3, v mt hnh trn mu en v cng di chuyn hnh

  • trn sao cho tm ca n trng vi im mc (hnh 1). l trng en ca mt

    c.

    c th lp trnh cho trng en, ta cn chuyn trng en thnh nhn vt

    ring bit. Mun vy, trc ht bn chn trng en v ng bin ca n (

    khi vng vu ng bin ca trng en, bn c th chn ng bin ,

    g phm Delete xa, ri dng cng c co dn iu chnh kch c trng

    en sao cho ph hp). Bn g phm F8 m hp thoi Convert to Symbol,

    g tn Pupil (trng en) v g Enter. Trng en tr thnh mt th hin ca

    nhn vt Pupil.

    Vi trng en ang trong tnh trng c chn, bn g phm F9 m

    bng Actions Movie Clip (hnh 2), vit hm x l tnh hung di chuyn

    chut nh sau:

    ?

    1

    2

    3

    4

    5

    onClipEvent(mouseMove) {

    a = Math.atan2(_ymouse, _xmouse);

    _x = 3*Math.cos(a);

  • 6

    7

    8

    9

    _y = 3*Math.sin(a);

    }

    ;

    Hm onClipEvent(mouseMove) c gi mi khi ngi chi x dch con

    chut. Bn trong hm, ta tnh gc nghing ca tia ni im mc vi con tr

  • chut (gc gia tia v phng ngang) bng cch dng hm atan2() ca

    lp Math. Bn ch , ta ang bn trong nhn vt Eye, do _xmouse v

    _ymouse l honh v tung ca con tr chut so vi im mc ca nhn

    vt Eye.

    Khi c gc nghing cn thit, ta tnh c ta ca trng en ph hp vi

    gc nghing . Ly dch chuyn ca trng en so vi im mc l 3 pi-

    xn, bn nhn dch chuyn vi cosin/sin ca gc nghing c honh

    /tung ca trng en.

    n Ctrl+Enter chy th tr chi, khi vn vn con tr chut quanh c nc,

    bn thy c lun o mt di theo con tr chut (hnh 3).

    Bn c th chnh sa dch chuyn ca trng en cho ph hp vi kch c

    c th ca mt c do bn v, nhng ng trng en vt ra ngoi trng

    trng!

    Theo echip.com

    Bi 19: Hnh nn v nhc nn T hc lp trnh Flash

    Tr chi Flash u tin ca bn gn hon chnh, bn c th thm vo

    hnh nn v nhc nn cho sng mt tai. Do bn cha tht quen

    vi cc cng c v ca Flash c th t v hnh nn, bn nn tm hnh

  • nh trn mng. Chng hn, nu g cc t cht underwater images trong

    tm kim Google, bn s tm c nhiu hnh chp di nc.

    Gi s bn tm thy mt hnh no coi c. Sau khi m tr chi bt sao

    bin trong ca s Flash, bn cn to mt lp mi cha hnh nn. C th,

    trong bng Timeline, bn bm Insert Layer to nn lp mi Layer 2, tr vo

    Layer 2, ko n xung di Layer 1. Bn c th i tn Layer 2 thnh

    Background hoc Nn nu r ngha ca lp mi.

    Bn n Ctrl+R (hoc chn File > Import > Import to Stage). Trong hp thoi

    Import va hin ra, bn tm n th mc cha hnh cn thit v bm kp vo

    hnh . Hnh c chn lp tc c a vo th vin v th hin trn sn

    khu lp nn.

    Bn bm vo hnh nn v n Ctrl+F3 m bng Properties, quan st cc

    thuc tnh ca hnh nn. V sn khu ca ta c kch thc mc nh 550 x 400

    (rng 500 im nh, cao 400 im nh), bn cn iu chnh hnh nn c

    kch thc ging nh vy: sa tr s trong W thnh 550 v sa tr s trong

    H thnh 400 (hnh 1). Hai X v Y u c tr s mc nh l 0, ngha l gc

    trn, bn tri ca hnh nn trng vi gc trn, bn tri ca sn khu. Trong

    phn ln trng hp, chnh l iu ta mong mun, bn khng cn sa

    thm g na

  • c nhc nn, bn cng c th tm trn mng vi cc t cht background

    music mp3. Bn nn chn on nhc ngn, vui v, c th nghe li nhiu ln

    m khng chn. on nhc di khng thch hp vi tr chi Flash v s lm

    cho tp tin SWF cui cng m bn thu c phnh ln. Mi th a ln

    mng cng nh gn cng tt.

    Sau khi c c tp tin MP3 cha nhc nn t trong th mc no , bn

    tr li ca s Flash, n Ctrl+R m hp thoi Import, tm chn tp tin MP3

    cn thit. on nhc MP3 cng c a vo th vin.

    thy c cc th ang c trong th vin, bn m bng Library bng cch

    n Ctrl+L hoc g phm F11. Trong danh sch ca bng Library, khi bn chn

    on nhc MP3, tn hiu m thanh c th hin trong khung pha trn (hnh

    2). Bn s thy hai dng m thanh trong khung nu on nhc ang xt

  • thuc loi stereo. Nu cn nghe li on nhc kim tra cht lng, bn

    bm nt Play . Mun thi nghe, bn bm nt Stop .

    Khc vi trng hp hnh nn xt, on nhc ca bn khng c a

    vo sn khu mt cch t ng. Bn phi ch ng quy nh nhc nn bng

    cch bm vo khung 1 (cng l khung duy nht) ca lp nn, bm vo

    Sound trong bng Properties, chn on nhc cn thit (hnh 3). Theo mc

    nh, on nhc c chn nh vy ch pht ra mt ln. on nhc c

    lp li hoi hoi sut tr chi, bn bm vo Sound Loop, chn Loop thay

    cho Repeat. Vy l , bn hy n Ctrl+Enter chy tr chi, nghe th nhc

    nn.

    Nu quan st th mc cha tp tin FLA v SWF ca tr chi, bn s ngc

    nhin v tp tin SWF (c bin dch t tp tin FLA) rt b so vi tp tin FLA.

    Tp tin SWF tuy cha mi th cn thit ca tr chi (chng trnh, hnh v,

  • hnh nn, m thanh) nhng thng nh hn nhiu so vi tp tin MP3 dng

    nh Flash nn m thanh rt tt. Bn c th a nhiu on nhc vo th vin

    d la chn nhng ch on nhc m bn thc s dng trong tr chi mi

    c lu tr trong tp tin SWF.

    Bi 20: Cu lnh to th hin T hc lp trnh Flash

    Bn bit cch to ra th hin ca nhn vt: tr vo tn nhn vt trong

    th vin, ko vo sn khu.

    Ngoi cch thc th cng nh vy, ta cn c th to ra th hin ca nhn vt

    bng cu lnh ActionScript, ngha l to ra th hin vo lc chy chng trnh.

    l vic thng lm khi lp trnh Flash v ta khng lun lun bit trc cn

    c bao nhiu th hin trn sn khu. S lng th hin trn sn khu c th

    thay i. Mi th hin c th xut hin v bin mt ty lc. Th hnh dung din

    bin ca tr chi Space Invaders quen thuc, bn thy ngay: vic to th hin

    mt cch linh hot vo lc chy l nhu cu bc thit.

    th to th hin bng cu lnh, bn hy m tp tin Flash mi, v mt hnh

    -van (c mu t ty nhng ng qu m), cng khung chn bao quanh

    hnh va v, g phm F8, g tn Oval v g Enter. Bn bit qu r: thao tc

    va thc hin to ra mt nhn vt mang tn Oval. Hnh -van trn sn khu

    tr thnh mt th hin ca nhn vt Oval. G phm F11 m bng Library,

    bn thy r nhn vt Oval c lu tr .

    Bn xa th hin ca nhn vt Oval trn sn khu (bm vo hnh -van, g

    phm Delete). Ta s to ra th hin ca nhn vt Oval trn sn khu trng trn

    bng cu lnh thch hp.

  • Trc khi lm iu , bn bm-phi vo tn Oval trong th vin, chn

    Linkage trong trnh n va hin ra. Trong hp thoi Linkage Properties, bn

    chn mc Export for ActionScript (hnh 1) v bm OK. Thao tc nh vy nhm

    khai bo vi Flash rng: Khi to ra tp tin SWF, nh ghi vo nhn vt

    mang tn Oval. Nu bn khng khai bo nh vy, Flash s khng ghi nhn

    vt Oval vo tp tin SWF vi l do n gin: nhn vt Oval khng hin din

    trn sn khu. Mt khi trong tp tin SWF khng c nhn vt Oval, chng

    trnh c ghi trong SWF khng th to ra th hin ca nhn vt Oval vo lc

    chy.

    C l bn hi ngc nhin v chuyn khai bo nu trn: Ti sao Flash khng t

    ng ghi mi nhn vt trong th vin vo tp tin SWF, d c hin din trn

    sn khu hoc khng?. Ngh k mt cht, bn thy ngay s kh chu ca

    Flash mang n li ch cho bn. Bn c th lu tr rt nhiu th trong th

    vin nhng tp tin sn phm SWF lun nh gn, ch cha ng nhng th

    thc s c dng. Trong trng hp ang xt, tuy nhn vt Oval khng c

    trong sn khu nhng ta cn n vo lc chy, do vy phi ni trc Flash

    hiu r nh ca ta.

    Bn g phm F9 m bng Actions Frame, ni dng vit chng trnh

    cho khung u tin ca thi tuyn chnh. Ta dng thut ng thi tuyn chnh

  • (main timeline) phn bit vi thi tuyn bn trong mi th hin. Bn g

    on m nh sau trong bng Actions Frame:

    ?

    1

    2

    3

    4

    5

    attachMovie("Oval", "oval1", 1);

    attachMovie("Oval", "oval2", 2);

    attachMovie("Oval", "oval3", 3);

    ;

    Ta dng ba cu lnh nh trn to ra ba th hin ca nhn vt Oval c tn

    l oval1, oval2 v oval3. i mc u tin ca hm attachMovie() l tn nhn

    vt. i mc th hai l tn ca th hin. i mc th ba cho bit th hin nm

    su no trn sn khu. Vi cch vit nh trn, th hin oval1 nm su

    nht trn sn khu. Th hin oval2 nm trn oval1 v th hin oval3 nm trn

    oval2.

    n Ctrl+Enter chy chng trnh, bn thy trn sn khu ch c mt hnh -

    van. chnh l th hin oval3 nm trn cng, chng kht ln hai th hin

    oval2 v oval1. Theo mc nh, hm attachMovie() to ra th hin ti im gc

    (0, 0) trn sn khu. Mun thy r c ba th hin, bn cn x dch chng i

    cht. Tr li vi chng trnh ang vit, bn g thm on m nh sau:

    ?

    1 oval1._x += 100; oval1._y += 100;

  • 2

    3

    4

    5

    oval2._x += 160; oval2._y += 100;

    oval3._x += 220; oval3._y += 100;

    ;

    on m va thm quy nh v tr cho cc th hin bng cch thay i tr ca

    bin _x v _y bn trong tng th hin. Cu lnh oval1._x += 100; lm cho

    honh _x ca th hin oval1 tng thm 100 (x dch qua phi 100 im

    nh). Cu lnh oval1._y += 100; lm cho tung _y ca th hin oval1 tng

    thm 100 (x dch xung di 100 im nh). Cc cu lnh tip theo lm cho

    honh _x ca th hin oval2 v oval3 tng nhiu hn oval1. Th chy

    chng trnh, bn c kt qu nh hnh 2.

    Vi cc th hin c to ra vo lc chy, bn c th thay i cc thuc tnh

    ca chng mt cch bnh thng. Chng hn, bn c th thay i bin _alpha

    trong tng th hin:

    ?

    1 oval1._alpha = 50;

  • 2

    3

    4

    5

    oval2._alpha = 50;

    oval3._alpha = 50;

    ;

    on m vit thm nh trn lm cho cc th hin tr nn na trong sut (hnh

    3).

    Bi 21 : Sao chp th hin T hc lp trnh Flash

    Bn th nghim cc cu lnh to th hin. T sn khu trng trn,

    cc th hin c to ra vo lc chy chng trnh.

    Trong chng trnh, bn c th thay i cc thuc tnh ca th hin nh vy

    mt cch bnh thng. Bn hy m li tp tin FLA cha cc cu lnh th

    nghim. Ta s tip tc tm hiu vic xa b th hin v sao chp th hin vo

    lc chy.

    Trong bng Actions Frame cha chng trnh ng vi khung 1, bn g

    thm mt cu lnh sau on m c:

  • ?

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    attachMovie("Oval", "oval1", 1);

    attachMovie("Oval", "oval2", 2);

    attachMovie("Oval", "oval3", 3);

    ...

    oval1._alpha = 50;

    oval2._alpha = 50;

    oval3._alpha = 50;

    oval3.removeMovieClip();

    ;

    Cu lnh va thm dng xa b th hin mang tn oval3. Ni ng hn, ta

    gi hm removeMovieClip() ca oval3 yu cu n t hy. n Ctrl+Enter

  • th chy chng trnh, bn thy qu thc th hin oval3 mt i, ch cn hai

    th hin oval1 v oval2.

    Vo lc chy chng trnh, ta cn c th to ra bn sao ca th hin no .

    Bn th vit thm cu lnh nh sau:

    ?

    1 oval1.duplicateMovieClip("oval3", 3);

    ;

    Cu lnh va vit yu cu oval1 to ra bn sao ca chnh n. Bn sao c

    t tn l oval3 v c su l 3 (nm trn oval1 v oval2). Th chy chng

    trnh, bn kh nhn ra s hin din ca bn sao v bn sao oval3 chng kht

    ln oval1. thy r bn sao oval3, bn vit thm cu lnh nh sau dch

    chuyn n xung di:

    ?

    1 oval3._y += 100;

    ;

    Bn thu c kt qu nh hnh 1 (tn ca cc th hin c ghi vo hnh

    bn d phn bit). Bn sao oval3 hon ton ging oval1, cng na trong sut.

  • C th bn ang ng ng: L ra nn t tn cho bn sao l oval4 v tn oval3

    c dng trc ?. ng l ta dng tn oval3 cho mt th hin

    khc, c to ra trc. Tuy nhin, th hin b xa b nn bn c th

    dng li tn oval3 m khng gy ra xung t.

    Nhn tin, xin ni nh vi bn rng nu ta to ra mt th hin c cng

    su vi th hin no c, th hin mi s thay th th hin c cng

    su. Cho d bn khng dng cu lnh oval3.removeMovieClip(); xa b

    th hin oval3, cu lnh oval1.duplicateMovieClip(oval3, 3); t ng xa b

    th hin oval3 c trc su l 3 to ra bn sao ca oval1 su

    . Nu khng tin, bn th v hiu ha cu lnh oval3.removeMovieClip();

    (ghi du // u cu lnh) v chy li chng trnh thy kt qu vn nh

    hnh 1.

  • Vi th hin c to ra vo lc chy, bn cn c th lm cho n thay hnh

    i dng. Bn vit thm hai cu lnh nh sau:

    ?

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    ...

    //oval3.removeMovieClip();

    oval1.duplicateMovieClip("oval3", 3);

    oval3._y += 100;

    oval3.attachMovie("Oval", "oval1", 1);

    oval3.oval1._x += 40;

    ;

    Cu lnh oval3.attachMovie(Oval, oval1, 1); nhm to ra th hin mang tn

    oval1 ca nhn vt Oval bn trong th hin oval3 vi su l 1. Bn ch ,

    su 1 ca th hin oval1 va thm l su bn trong oval3.

    Cu lnh tip theo oval3.oval1._x += 40; dch chuyn th hin va thm qua

    phi cho d phn bit. Th chy chng trnh, bn thy kt qu nh hnh 2.

  • Th hin oval3 gi y tr thnh

    mt th hin phc hp bao gm hai hnh -van, trong hnh -van va thm

    c tn ring l oval1. Ni r hn, oval3 khng cn l th hin ca nhn vt

    Oval, m l mt phc hp cha ng hai th hin ca nhn vt Oval.

    Th vit thm cu lnh co chiu rng ca oval3 theo phng ngang (ch

    cn 50%):

    ?

    1

    2

    3

    4

    5

    ...

    oval3.attachMovie("Oval", "oval1", 1);

    oval3.oval1._x += 40;

  • 6

    7

    oval3._xscale = 50;

    ;

    bn thy c hai hnh -van ca oval3 u b p nh nhau.

    Chc bn thc mc kinh khng: Sao li dng tn oval1? Tn oval1 dng

    cho th hin u tin ri m!. Bn yn tm, th hin oval1 va to ra nm

    bn trong oval3. Nhn t bn ngoi oval3, th hin va thm c tn l

    oval3.oval1. Tn oval1 c dng trong hai phm vi (scope) khc nhau nn

    y cng khng c xung t trong vic t tn.

    Bi 22 : Nhn vt trng rng T hc lp trnh Flash

    Bn hy m li tp tin FLA cha on m th nghim vic to cc th

    hin vo lc chy chng trnh. Ta vit nhng nht khung 1 ca

    thi tuyn chnh, do bn cn bm vo khung 1 trong bng Timeline,

    g F9 m bng Actions Frame.

    Cc cu lnh vit to ra cc th hin khc nhau ca nhn vt Oval. Bn

    to ra nhn vt Oval t trc bng cch v hnh -van v chuyn hnh

    thnh nhn vt.

    Bn c th to ra bn thn nhn vt vo lc chy, khng cn to trc nhn

    vt nh lm. l loi nhn vt trng rng (empty movie clip) cha c hnh

    th g c vo lc c to ra. Sau khi to ra nhn vt nh vy, bn c th

    dng cc cu lnh thch hp v vi chn dung cho n. Bn cng c th

    a vo nhn vt trng rng cc th hin ca nhn vt khc, to thnh nhn

  • vt phc hp. Trong thc t, ngi ta thng to ra nhn vt trng rng v

    a vo cc hnh nh c ti xung t my ch (khi vic ti xung hon

    tt). iu ny c thc hin vo lc chng trnh ang chy, khng i hi

    cc hnh nh c ti xung ngay khi khi ng, nh vy rt ngn ng k

    thi gian khi ng ca chng trnh.

    Bn n Ctrl+A v g phm Delete xa mi cu lnh vit. Bn vit on

    m mi nh sau th to nhn vt trng rng:

    ?

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    createEmptyMovieClip("myOvals", 1);

    myOvals._x = 100;

    myOvals._y = 100;

    for(i = 1; i < 6; i++) {

    myOvals.attachMovie("Oval", "oval" + i, i);

    }

    Cu lnh createEmptyMovieClip(myOvals, 1); to ra mt th hin ca nhn

    vt trng rng thi tuyn chnh, c tn l myOvals v c t su l

  • 1. Hai cu lnh tip theo quy nh honh _x v tung _y ca th hin

    (d n cha mt mi). Vng lp for c nhim v lp li nm ln vic to th

    hin ca nhn vt Oval bn trong myOvals. Nh li cch dng hm

    attachMovie(), bn hiu ngay: cc th hin ca nhn vt Oval c tn l

    oval1,, oval5 v c t cc su t 1 n 5 (cc tr kh d ca bin i)

    bn trong myOvals..

    phn bit d dng cc th hin oval1,, oval 5 bn trong myOvals, ta cn

    lm cho chng c v tr khc nhau. Bn vit thm nh sau bn di vng lp

    for:

    ?

    1

    2

    3

    4

    5

    6

    7

    8

    9

    myOvals.oval1._x = 40;

    myOvals.oval2._x = 80;

    myOvals.oval3._x = 120;

    myOvals.oval4._x = 160;

    myOvals.oval5._x = 200;

    Nm cu lnh va nu x dch cc th hin qua phi. Cc th hin c honh

    _x khc nhau. Bn ch , biu thc myOvals.oval1._x dng din t

    honh _x ca th hin oval1 bn trong th hin myOvals. Nu bn vit n

  • gin oval1._x, Flash s khng thc hin c yu cu ca bn v thi tuyn

    chnh khng c th hin no tn l oval1.

    Th chy chng trnh, bn thy kt qu nh hnh 1.

    Thay v dng n nm cu lnh thay i honh _x ca nm th hin

    oval1,,oval5, bn vit li theo cch khc, lch lm hn, ch dng mt cu

    lnh trong vng lp for:

    ?

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    ...

    for(i = 1; i < 6; i++) {

    myOvals.attachMovie("Oval", "oval" + i, i);

    eval("myOvals.oval" + i)._x += i*40;

    }

    /*

  • 11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    myOvals.oval1._x = 40;

    myOvals.oval2._x = 80;

    myOvals.oval3._x = 120;

    myOvals.oval4._x = 160;

    myOvals.oval5._x = 200;

    */

    Cu lnh va thm trong vng lp dng hm eval(), mt hm m bn cha

    tng bit. Hm eval() chuyn i mt chui thnh tham chiu (reference).

    Chng hn, khi tr s ca i l 1, cu lnh va thm tng ng vi cu lnh

    eval(myOvals.oval + 1)._x += 40; hoc myOvals.oval1._x += 40;. Nh c

    hm eval(), Flash hiu c rng chui myOvals.oval + 1 dng tr n

    th hin oval1 bn trong th hin myOvals: myOvals.oval1.

    Nh hm eval(), bn c th to ra bin mi vi tn ty vo lc chy. iu

    ny l mt th mnh ca Flash, gip bn a ra nhng quyt nh linh hot

  • vo lc chy chng trnh, ch khng phi vo lc vit chng trnh.

    Bn hy vit tip mt cu lnh na cui chng trnh thay i thuc tnh

    _alpha ca th hin myOvals:

    ?

    1 myOvals._alpha = 50;

    Chy li chng trnh, bn thy kt qu nh hnh 2. Vic thay i thuc tnh

    _alpha ca myOvals tc ng ln c nm th hin oval1,,oval5 ca nhn vt

    Oval bn trong myOvals, lm cho chng u tr nn na trong sut (thuc

    tnh _alpha ca cc th hin oval1,,oval5 u tr thnh 50). R rng, vic

    gp cc th hin ring l vo mt th hin duy nht gip bn thay i ng

    lot thuc tnh ca chng

    Bi 23 : Gn hnh vi vo th hin T hc lp trnh

    Flash

    Bn bit rng hnh vi ca mt th hin bao gm cc hm x l tnh

    hung nh onClipEvent(mouseDown),

    onClipEvent(load), onClipEvent(enterFrame), Thng thng, bn ko

    nhn vt t bng Library vo sn khu to ra th hin ca nhn vt. Bn

    quy nh hnh vi ca th hin bng cch bm chn th hin v vit cc hm

    x l tnh hung cho th hin c chn trong bng Actions Movie Clip.

    i vi th hin c to ra vo lc chy chng trnh, cch quy nh hnh vi

    ca th hin c khc. Trc khi chy, th hin khng c trn sn khu bn

    bm chn. Do vy, bn ch c th gn hm x l tnh hung vo th hin trong

    lc chy.

  • Bn hy m li tp tin FLA dng th nghim vic to cc th hin vo lc

    chy, m bng Actions Frame, xa ht on m hin c ng vi khung 1 v

    vit on m th nghim mi nh sau:

    ?

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    attachMovie("Oval", "oval1", 1);

    oval1._x = 200;

    oval1._y = 100;

    oval1.onMouseDown = function() {

    this._xscale += 5;

    }

    Ba cu lnh u tin trong on m va vit rt