More Related Content Similar to 24 gio hoc flash (20) More from Há»c Huỳnh BĂĄ (16) 24 gio hoc flash1. Gi th 01: LĂ m quen v i AS, Your First Look at AS
AS lĂ m t ngĂŽn ng l p trĂŹnh Æ° c xĂąy d ng trong Flash. AS gi ng nhÆ° cĂĄc ngĂŽn ng
khĂĄc nhÆ° Javascript, C++ v.v. nhÆ°ng b n khĂŽng c n bi t cĂĄc ngĂŽn ng khĂĄc h c
AS (n u cĂł thĂŹ cĂ ng d hÆĄn).
B t Ăąu h c AS, thĂŹ chĂșng ta coi th AS lĂ gĂŹ, lĂ m Æ° c nh ng gĂŹ vĂ cĂł quan h gĂŹ v i
cĂĄc ch c nÄng khĂĄc c a Flash. Trong bĂ i nĂ y, b n s tĂŹm hi u coi AS ra i nhÆ° th
nĂ o, xem cĂĄch vi t AS lĂ m sao, tĂŹm hi u AS lĂ m Æ° c nh ng gĂŹ vĂ sau sau cĂčng lĂ
xĂĄc nh Æ° c nÆĄi lÆ°u tr AS trong Flash.
i såt nghĩa và ti n cho sau nà y, mÏnh s khÎng d ch m t s t ng ra ti ng vi t
nhÆ° script, movieclip v.v.
Script lĂ gĂŹ?
AS lĂ ngĂŽn ng l p trĂŹnh, v i cĂĄc l nh sai khi n Flash movie lĂ m vi c theo Ășng
nh ng gĂŹ mĂŹnh vi t (ch cĂł mĂŹnh vi t sai ch computer khĂŽng lĂ m sai ). Ph n nhi u
thĂŹ AS ch lĂ m vi c trong mĂŽi trÆ° ng c a Flash, tuy nhiĂȘn AS cĆ©ng cĂł th g i l nh
cho browser, h i u hĂ nh v.v.
Script cĂł th ng n g n vĂ i ch hay cĆ©ng cĂł th dĂ i c trÄm trang. Script cĂł th Æ° c
vi t g p l i m t ch hay cĆ©ng cĂł th vi t rĂŁi rĂĄc kh p nÆĄi trong movie.
Xu t x c a AS
AS rĂąt gi ng ngĂŽn ng C++, Java, javascript .v.v vĂ Æ° c d a trĂȘn tiĂȘu chu n do
ECMA (European Computer Manufactuers Association) l p ra g i lĂ ECMAScript.
Nhi u ngÆ° i hi u l m r ng AS d a trĂȘn Javascript, nhÆ°ng th c ch t c 2 u d a trĂȘn
ECMAScript.
LĂșc u vi t script trong Flash r t ÆĄn gi n vĂ cho t i Flash 4 m i u c phĂĄt tri n
nhÆ°ng cĆ©ng v n cĂČn "thĂŽ sÆĄ" v i nh ng vĂČng l p vĂ cĂĄc i u ki n "if...else". Cho t i
Flash 5 thĂŹ dĂąn Flash m i cĂł th l p trĂŹnh vĂ g n li n script v i cĂĄc y u t trong
movie. . Sang t i Flash MX thĂŹ AS ĂŁ tr thĂ nh ngĂŽn ng l p trĂŹnh toĂ n di n v i hÆĄn
300 cĂąu l nh, hĂ m .v.v
Nh n biĂȘt AS
AS ÆĄn gi n lĂ nh ng cĂąu l nh Æ° c vi t b ng ti ng Anh (vĂŹ l nĂ y mĂ mĂŹnh s khĂŽng
d ch cĂĄc tÆ° ti ng Anh liĂȘn quan n AS, vĂ m t ph n thĂŹ mĂŹnh khĂŽng gi i thu t ng
computer hay ti ng vi t cho l m) vĂ cĂĄc phĂ©p tĂnh vĂ d u cĂąu. VĂ d sau:
ActionScript
on (press) {
gotoAndPlay ("my frame");
}
2. B n cĂł th gi i nghÄ©a o n mĂŁ trĂȘn b ng cĂĄch tĂŹm hi u cĂĄc t chĂnh trong Ăł. Ch
"press" g i Ăœ rÄng ngÆ° i dĂčng ang kĂch chu t vĂ o m t cĂĄi gĂŹ Ăł, (vĂ trong trÆ° ng
h p nĂ y lĂ cĂĄi nĂșt) Ch k ti p "gotoAndPlay" do 4 ch "go to and play" g p l i, g i
Ăœ r ng AS ra l nh cho Flash t im t i m nĂ o Ăł trong movie vĂ b t u chÆĄi t i m
Ăł.
AS cĂł th lĂ m nh ng gĂŹ?
Flash movie g m cĂł cĂĄc scence (c nh), vĂ m i c nh s cĂł 1 timeline (th i gi n
bi u???) vĂ timeline s cĂł cĂĄc frame (khung) b t u t s 1. ThĂŽng thÆ° ng thĂŹ Flash
s chÆĄi t frame 1 cho t i frame cu i c a scence v i t c c nh vĂ d ng l i hay
l p l i t u tuy theo ngÆ° i lĂ m Flash.
M c Ăch chĂnh c a AS lĂ thay i th t trong cĂĄch chÆĄi c a Flash. AS cĂł th dĂčng
b t frame nĂ o, hay ch y ngÆ° c tr l i frame trÆ° c hay nh y vĂ i frame r i chÆĄi ti p.
NhÆ°ng Ăł khĂŽng ch lĂ nh ng gĂŹ AS cĂł th lĂ m Æ° c. AS cĂł th bi n film ho t hĂŹnh
c a Flash thĂ nh m t chÆ°ÆĄng trĂŹnh ng d ng cĂł s tÆ°ÆĄng tĂĄc c a ngÆ° i dĂčng. DÆ° i
Ăąy lĂ nh ng cÆĄ b n mĂ AS cĂł th lĂ m:
âą Ho t hĂŹnh: B n khĂŽng c n AS lĂ m ho t hĂŹnh, nhÆ°ng v i AS thĂŹ b n cĂł th
t o nh ng ho t hĂŹnh ph c t p hÆĄn. VĂ d , trĂĄi banh cĂł th tÆ°ng xung quanh
mĂ nh hĂŹnh mĂ khĂŽng bao gi ng ng, vĂ tuĂąn theo cĂĄc nh lu t v t lĂœ nhÆ° l c
hĂșt, l c ma sĂĄt, l c ph n v.v N u khĂŽng cĂł AS thĂŹ b n c n ph i dĂčng c hĂ ng
ngĂ n frame lĂ m, cĂČn v i AS thĂŹ ch 1 frame cĆ©ng
âą Navigation (hĂŽng bi t d chlĂ m sao cho hay ): thay vĂŹ movie ch chÆĄi t ng
frame 1 theo th t thÏ b n có th d ng movie b t c frame nà o, và cho phép
ngÆ° i dĂčng cĂł th chÆĄi b t c frame nĂ o .v.v
âą Thu nh p thĂŽng tin t ngÆ° i dĂčng (user input): b n cĂł th dĂčng AS h i
ngÆ° i dĂčng 1 c u h i, r i dĂčng thĂŽng tĂŹn Ăł trong movie hay cĂł th g i cho
server hay lĂ m nh ng gĂŹ b n mu n.
âą Thu nh p thĂŽng tĂŹn t cĂĄc ngu n khĂĄc: AS cĂł th tÆ°ÆĄng tĂĄc v i server vĂ l y
cĂĄc thĂŽng tin t server hay text file
âą TĂnh toĂĄn: AS cĂł th lĂ m b t c phĂ©p tĂnh nĂ o mĂ toĂĄn h c cho phĂ©p
âą Thay i hĂŹnh nh trong movie: AS cĂł th thay i kĂch thÆ° c, mĂ u s c, v trĂ
c a b t c movie clip (MC) nĂ o trong movie flash c a b n. B n cĂł th t o
thĂȘm phiĂȘn b n hay xoĂĄ b i phiĂȘn b n c a MC v i AS
âą PhĂąn tĂch mĂŽi trÆ° ng c a mĂĄy tĂnh: V i AS b n cĂł th l y gi t h i u hĂ nh
hay a ch ang chÆĄi movie Flash Ăł.
âą i u khi n Ăąm thanh trong flash movie: AS lĂ cĂĄch t t nh t i u khi n Ăąm
thanh trong Flash,AS cĂł chÆĄi ch m, chÆĄi nhanh, ng ng, quay vĂČng .v.v bĂąt kỳ
Ăąm thanh nĂ o trong Flash.
PhĂĄt tri n cĂĄc kh nÄng c a AS
i u quan tr ng nh t mĂ AS cĂł th lĂ m cho b n lĂ nh ng gĂŹ chÆ°a ai nghÄ© t i V i
AS vĂ trĂ tÆ° ng tÆ° ng vĂ Ăłc sĂĄng t o c a b n thĂŹ khĂŽng cĂł gĂŹ lĂ khĂŽng th x y ra v i
AS Æ° c.
M c Ăch c a cĂĄc sĂĄch, vĂ c a VNFX lĂ hÆ° ng d n b n hi u bi t v Flash t Ăł
3. b n cĂł th t dĂčng nĂł lĂ m ra nh ng s n ph m tuy t v i mĂ khĂŽng ai cĂł.
Vi t AS Ăąu
CĂąu h i u tiĂȘn nh ng ai tĂŹm hi u AS thÆ° ng h i lĂ "Vi t AS vĂ o Ăąu?". Flash cĂł
m t mĂŽi trÆ° ng lĂ m multimedia khĂĄ ph c t p. N u b n ĂŁ dĂčng Flash r i hay ĂŁ c
qua cĂĄc hÆ° ng d n i kĂšm v i Flash, thĂŹ b n ĂŁ bi t cĂĄc y u t cÆĄ b n nhÆ° timeline,
key frame v.v. nĂȘu b n chÆ°a bi t thĂŹ mĂŹnh khuyĂȘn b n nĂȘn tĂŹm hi u trÆ° c r i tiĂȘp t c
Ăąy. Æ trong m c Flash T ng QuĂĄ, VNFX cĂł post link download 3 cĂĄi CD hÆ° ng
d n cÆĄ b n cho ngÆ° i chÆ°a bao gi dĂčng Flash.
Vi t AS time line
AS cĂł th vi t vĂ o key frame b t c timeline nĂ o. lĂ m nhÆ° v y, b n ch n key
frame trong timeline trÆ° c r i b n m Action Panel ra (cĂł th nh n F9) viĂȘt hay
xem AS ĂŁ Æ° c vi t Ăł. MĂŹnh khuyĂȘn b n nĂȘn dĂčng Action Panel dÆ° i d ng
Expert hÆĄn lĂ Normal, vĂŹ nhÆ° v y b n s h c Æ° c nhi u vĂ l hÆĄn.
Khi vi t AS vĂ o key frame nhÆ° v y thĂŹ AS key frame Ăł s ho t ng khi mĂ Flash
chÆĄi t i key frame Ăł. VĂ d nhÆ° l nh AS stop() Æ° c t key frame 5 thĂŹ Flash
chÆĄi t i key frame 5 thĂŹ s d ng l i cho t i khi cĂł l nh khĂĄc. cĂĄch vi t nĂ y g i lĂ vi t
vĂ o time line
M t trong nh ng lĂœ do vi t script vĂ o time line lĂ khi b n mu n dĂčng function (hĂ m),
vĂŹ function cho phĂ©p chĂșng ta tĂĄi s d ng o n mĂŁ Ăł t nhi u nÆĄi, nhi u level khĂĄc.
ViĂȘt AS nĂșt
CĂĄc ph n t c a Flash movie Æ° c g i lĂ symbol (bi u tÆ° ng). thÆ° ng thĂŹ symbol lĂ
cĂĄc hĂŹnh nh. VĂ cĂł 3 lo i symbol: button (nĂșt), graphich (hĂŹnh nh), movie
clips( o n phim). 3 lo i trĂȘn thĂŹ AS khĂŽng th vi t li n v i graphic, cĂČn button vĂ
movie clip thĂŹ OK.
NĂșt s khĂŽng cĂł tĂĄc d ng gĂŹ c n u nhÆ° khĂŽng kĂšm AS lĂȘn trĂȘn nĂł. Mu n kĂšm AS
vĂ o nĂșt thĂŹ ch n nĂșt trĂȘn stage (sĂąn kh u: di n tĂch c a flash movie), r i sau Ăł m
Action panel vĂ vi t vĂ o Ăł nhÆ° ta vi t vĂ o key frame.
AS vi t trĂȘn nĂșt ch ho t ng khi chu t ho c bĂ n phĂm tĂĄc ng lĂȘn nĂșt mĂ thĂŽi
Vi t AS MC
MC khĂĄc v i graphic ch MC Æ° c t tĂȘn khi mang vĂ o stage, MC thÆ° ng lĂ hĂŹnh
Ă nh ng, vĂ cĂł th cĂł AS kĂšm theo MC. vi t AS vĂ o MC thĂŹ cĆ©ng tÆ°ÆĄng t nhÆ°
ta lĂ m v i nĂșt.
AS kĂšm theo MC cĂł th i u khi n MC Ăł hay lĂ cĂĄc MC trong cĂčng m t timeline
hay cĂĄc timeline ngoĂ i movie
BĂ i t p
4. 1. T o m t movie m i
2. t o 3 key frames
3. Dung Flash v m i hĂŹnh khĂĄc nhau cho m i frame
4. Ch y th movie (nh n Control + enter)
5. Sau Ăł tr l i timeline, vi t vĂ o keyframe 2 o n mĂŁ : "stop();"
6. Cho ch y th movie l n n a
7. VĂ kỳ nĂ y b n ch th y Flash chÆĄi t i frame th 2 thĂŹ ng ng, vĂ b n ĂŁ thĂ nh cĂŽng
trong vi c vi t AS :
Gi th 02: S d ng Action panel, Using the Script Editing Window
N u dĂąn ho coi Timeline lĂ nhĂ thĂŹ dĂąn l p trĂŹnh v i AS coi Action Panel lĂ nÆĄi
cÆ° ng c a mĂŹnh, t i Ăł dĂąn AS cĂł th thay i, vi t t t c cĂĄc l nh. VĂŹ v y r t quan
tr ng lĂ b n cĂł th s d ng quen thu c Action Panel
Flash MX s d ng cĂĄc panel giĂșp b n cĂł th l y cĂĄc thĂŽng tin v movie b n ang
lĂ m m t cĂĄch d dĂ ng. Khi b n cĂ i t vĂ chay Flash l n u tiĂȘn, Flash s h i b n
mu n s d ng Flash nhÆ° th nĂ o vĂ Flash s x p t cĂĄc panel cho h p lĂœ. B n cĆ©ng
cĂł th thay i cĂĄch x p t theo Ăœ c a b n.
NĂłi chung b n nĂȘn x p t cĂĄc panel c a b n lĂ m sao cho thu n ti n cho b n nh t, vĂ
cĂĄi nĂ y cĆ©ng c n cĂł kinh nghi m Ăł MĂŹnh dĂčng dual monitor, mĂŹnh close h t cĂĄc
panel ch gi l i 2 cĂĄi chĂnh trĂȘn mĂ n hĂŹnh, mĂŹnh kĂ©o cĂĄi action panel vĂ property
panel qua m t bĂȘn monitor, cĂČn cĂĄi bĂȘn kia cho cĂĄi stage, n u c n m panel nĂ o
thĂŹ mĂŹnh dĂčng phĂm t t m .
S d ng Action panel cĂł 2 cĂĄch: bĂŹnh thÆ° ng (normal) vĂ chuyĂȘn d ng (expert). Khi
m i ch y mĂĄy l n u thĂŹ Action panel Æ° c set dÆ° i d ng bĂŹnh thÆ° ng. d ng bĂŹnh
thÆ° ng thĂŹ b n khĂŽng cĂł th ĂĄnh tr c ti p cĂĄc cĂąu l nh, mĂ ph i ch n t cĂĄc menu
bĂȘn tay trĂĄi c a panel. V i setup nhÆ° v y thĂŹ b n khĂŽng bao gi ph m ph i l i khi vi t
AS c .
MĂŹnh s b ph n hÆ° ng d n dĂčng normal vĂŹ mĂŹnh th y dĂčng normal mode s khĂŽng
bao gi ti n Æ° c, dĂčng expert mode lĂșc u hÆĄi m t nhÆ°ng b o m lĂ cĂĄc b n s
h c Æ° c mau vĂ nh lĂąu hÆĄn
S d ng Action panel v i expert mode thĂŹ b n cĂł nhi u t do hÆĄn, nhÆ°ng t do ng
nghÄ©a v i trĂĄch nhi m nĂȘn b n ph i c n th t khi vi t code. T normal mode chuy n
sang expert mode thĂŹ nh n phĂm t t CONTROL + SHIFT + E, chuy n ngÆ° c l i thĂŹ
dĂčng CONTROL + SHIFT + N (nh kĂch chu t vĂ o action panel trÆ° c khi dĂčng phĂm
t t). B n cĂł th i t Normal mode sang expert mode b t c lĂșc nĂ o, nhÆ°ng i
ngÆ° c l i thĂŹ ch Æ° c khi mĂ code c a b n khĂŽng cĂł l i.
Action panel cĂł popup menu (mĆ©i tĂȘn ch xu ng dÆ° i, n m gĂłc ph i c a action
panel) vĂ trong Ăł cĂł nhi u l nh r t t t cho b n khi b n dĂčng Action panel, nh t lĂ i
v i Expert mode. B n cĂł th tĂŹm vĂ thay th b t c cĂąu nĂ o, ch nĂ o trong script c a
b n. PhĂm t t cho tĂŹm ki m lĂ Control + F vĂ cho thay th lĂ Control + H, nh n F3 thĂŹ
Flash s ti p t c tĂŹm ch , cĂąu b n mu n tĂŹm.
5. M t l nh n a lĂ "Goto Line" giĂșp b n tĂŹm Æ° c cĂąu b n mu n tĂŹm. L nh "Check
Syntax" s rĂ soĂĄt script c a b n vĂ tĂŹm nh ng l i cĂș phĂĄp. LĂșc m i t p vi t AS, thĂŹ
dĂčng nĂȘn thÆ° ng xuyĂȘn dĂčng Chech Syntax check l i trong sctipt. L nh ti p theo
lĂ "Auto Format" vĂ "Auto Format Options" giĂșp cho b n trĂŹnh bĂ y script c a b n cho
d c hÆĄn. B n cĂł th thay i mĂ u s c, font ch v.v. cho script c a b n cho b n
d c code hÆĄn b ng cĂĄch vĂ o Edit > Preferences > ActionScript Editor. CĂĄc ph n
cĂČn l i c a pop-up window cho phĂ©p b n Æ° c xu t hay nh p AS dÆ° i d ng text file
vĂ in script ra gi y.
Tuy g i lĂ expert mode nhÆ°ng th c ra dĂčng cĂČn d hÆĄn lĂ normal mode. B i vĂŹ dÆ° i
expert mode thi Action panel ch ng khĂĄc gĂŹ chÆ°ÆĄng trĂŹnh "note pad" hay "text pad".
B n ch vi c vi t nh ng gĂŹ b n mu n vĂ o Ăł. Khi dĂčng dÆ° i expert mode, b n v n cĂł
th tham kh o cĂĄc cĂąu l nh, cĂĄc cĂș phĂĄp c a AS cĂĄi khung bĂȘn trĂĄi c a Action
Panel. VĂ n u b n tĂŽn th m t s quy t t thĂŹ b n s s Æ° c ch c nÄng "Code Hint"
c a Action Panel, ch c nÄng nĂ y t o nĂȘn nhÆ°ng khung nh nh trong Ăł cĂł nh ng cĂąu
l nh c a AS Ășng h p quy cho b n l a ch n.
tr thĂ nh m t "cao th " v AS thĂŹ b n khĂŽng th nĂ o khĂŽng n m v ng v Action
panel Æ° c.
Sau Ăąy lĂ bĂ i th c hĂ nh nho nh , giĂșp b n lĂ m quen v i Action panel dÆ° i expert
mode
1. T o m t movie m i
2. Ch n key frame u tiĂȘn (frame s 1) c a layer 1 (mĂŹnh khĂŽng d ch ch layer = l p
vĂŹ d trĂčng v i class= l p)
3. M Action panel (cĂł th dĂčng phĂm t t hay vĂ o trong ph n Window > Action panel
4. Chuy n sang expert mode (dĂčng phĂm t t hĂ y vĂ o trong pop-up menu c a Action
panel i)
5. VĂ o ch vi t AS
6. Vi t o n code sau:
ActionScript
trace ("I am expert");
Khi b n th movie thĂŹ dĂČng ch "I am expert" s Æ° c hi n ra trong Output panel, vĂ
mĂŹnh s c p n l nh trace() vĂ o nh ng gi t i
6. Gi th 03: H c cĂĄch l p trĂŹnh, Learning to program
L p trĂŹnh cĂł th coi lĂ khoa h c vĂ ngh thu t. VĂŹ v y l p trĂŹnh viĂȘn gi i c n cĂł 2 i u
ki n ki n th c v ngĂŽn ng mĂ h dĂčng vĂ tĂnh sĂĄng t o, Ăt khi nĂ o cĂł trÆ° ng h p ch
cĂł 1 cĂĄch l p trĂŹnh cho m t ĂĄn l m.
Trong quĂĄ trĂŹnh vi t AS, b n s t o ra cho riĂȘng mĂŹnh m t phong thĂĄi vi t code khĂĄ
c trÆ°ng. CĂł th m i u b n s dĂčng phong cĂĄch vi t code trong nh ng bĂ i vi t nĂ y,
r i sau Ăł b n s t t chuy n sang phong cĂĄch c a riĂȘng b n
ThÆ° ng thĂŹ khĂĄi ni m v cĂĄc ngĂŽn ng l p trĂŹnh u gi ng nhau, vĂ trong bĂ i nĂ y s
bĂ n v nh ng khĂĄi ni m l p trĂŹnh vĂ lĂ m sao ĂĄp d ng nĂł trong Flash
Cåch suy nghĩ c a computer
Th t ra computer d t l m ch ng bi t suy nghĩ ùu, ch bi t là m vi c theo m nh l nh
m t cĂĄch khĂŽng suy nghÄ©. VĂŹ v y computer khĂŽng bao gi l i mĂ l i ngÆ° i vi t l nh
sai khi n nĂł.
CĂČn AS ch lĂ m t chu i l nh, ch th cho computer, hay Ășng ra lĂ Flash ph i lĂ m
nh ng gĂŹ trong mĂŽi trÆ° ng runtime (runtime environment).
Khi vi t AS thĂŹ b n nĂȘn t coi mĂŹnh "ngu" nhÆ° computer, vĂ c l i nh ng dĂČng l nh
AS và nghĩ t i k t qu c a vi c thi hà nh l nh ó. Khi t t mÏnh và o v trà c a
computer, b n s oĂĄn Æ° c script c a b n s lĂ m nh ng gĂŹ trong mĂŽi trÆ° ng runtime,
vĂ b n cĂł th th y ra nh ng l i mĂ b n vĂŽ Ăœ m c ph i. Khi mĂ b n tr thĂ nh di n viĂȘn
tuy t v i trong vai computer thĂŹ b n cĆ©ng tr thĂ nh m t l p trĂŹnh viĂȘn tĂ i ba.
L nh, hĂ m, vĂ phĂ©p tĂnh
L nh (command) lĂ y u t cÄn b n c a AS ch th Flash lĂ m m t hĂ nh ng c th .
L nh Æ° c thi hĂ nh tuy t i trong cĂĄc trÆ° ng h p kh thi. VĂ d n u nhÆ° ta vi t
gotoAndPlay(5) cho Flash t i frame 5 vĂ chÆĄi, nhÆ°ng n u trong movie khĂŽng cĂł
frame 5 thĂŹ l nh khĂŽng th lĂ m Æ° c.
HĂ m (function, mĂŹnh s dĂčng t function nhi u hÆĄn lĂ hĂ m) lĂ ph n tĂnh toĂĄn cĂĄc
phĂ©p tĂnh vĂ cho ra (return) m t k t qu . VĂ d hĂ m random() s cho ra m t con s
ng u nhiĂȘn nĂ o Ăł, hay hĂ m sqrt() s cho ra giĂĄ tr bĂŹnh phÆ°ÆĄng c a 1 s mĂ hĂ m
nh n Æ° c truy n cho.
L nh vĂ hĂ m u cĂł th Æ° c truy n cho 1 hay nhi u thĂŽng s (parameter, mĂŹnh s
dĂčng t parameter thay vĂŹ thĂŽng s ), vĂ nh ng thĂŽng s Ăł giĂșp cho hĂ m vĂ l nh Æ° c
c th hÆĄn. VĂ d gotoAndPlay(5) thĂŹ 5 lĂ thĂŽng s , n u nhÆ° khĂŽng cĂł thĂŽng s nĂ y
thĂŹ l nh "gotoAndPlay" s khĂŽng bi t rĂ” ph i nĂłi Flash i Ăąu. cĆ©ng nhÆ° hĂ m sqrt()
cĆ©ng c n cĂł thĂŽng s cho ra giĂĄ tr bĂŹnh phÆ°ÆĄng c a s y.
S khĂĄc bi t gi a hĂ m vĂ l nh chĂnh lĂ cĂĄc phĂ©p tĂnh. PhĂ©p tĂnh thÆ° ng lĂ nh ng d u
+, -, *, / hay lĂ phĂ©p so sĂĄnh <, ==. >. HĂ m cĂł phĂ©p tĂnh, l nh thĂŹ khĂŽng
7. Bi n s
Bi n s (parameter) c n thi t trong m i ngĂŽn ng l p trĂŹnh vĂŹ nĂł lÆ°u tr thĂŽng tin v
m t cĂĄi gĂŹ Ăł trong chÆ°ÆĄng trĂŹnh. Bi n s g m cĂł 2 ph n: tĂȘn vĂ giĂĄ tr . ĂŽi khi b n
ch c n lÆ°u tr thĂŽng tin trong bi n s m t th i gian ng n, vĂ d b n mu n Flash thi
hĂ nh 1 s l nh 10 l n thĂŹ b n c n m s l n mĂ Flash ĂŁ thi hĂ nh l nh cĂł th ra
l nh cho Flash ngÆ°ng ngay sau khi thi hĂ nh xong l nh l n th 10. NhÆ°ng cĆ©ng cĂł lĂșc
b n c n ph i lÆ°u l i thĂŽng tin trong m t th i gian dĂ i hay trong su t quĂĄ trĂŹnh th i
gian Flash chÆĄi.
TĂȘn c a bi n s thÆ° ng lĂ m t nhĂłm t , hay cĆ©ng cĂł th ch ÆĄn gi n lĂ 1 t , hay 1
ch cĂĄi. ThĂŽng thÆ° ng tĂȘn c a bi n s nĂȘn rĂ” rĂ ng d hi u vĂ nĂłi lĂȘn Æ° c tĂnh ch t
c a thĂŽng tin mĂ bi n s ang lÆ°u tr . VĂ d n u b n mu n lÆ°u tr tĂȘn c a ngÆ° i dĂčng
trong bi n s thĂŹ b n nĂȘn t tĂȘn bi n s Ăł lĂ userName (mĂŹnh nghÄ© t tĂȘn ti ng Anh
d hi u hÆĄn, vĂŹ ti ng vi t khĂŽng d u cĆ©ng d b hi u l m), b n cĂł th t tĂȘn bi n s
Ăł lĂ "n" nhÆ°ng quĂĄ ng n, ngÆ° i c script c a b n s khĂł hi u, n u t lĂ name thĂŹ
d trĂčng v i cĂĄc bi n s hay t khoĂĄ khĂĄc (_name lĂ m t c tĂnh c a i tÆ° ng
MovieClip)
Khi vi t AS, b n c n lÆ°u Ăœ vi t lĂ m sao cho d hi u vĂ d c. VĂ cĂĄc l p trĂŹnh viĂȘn
quy Æ° c tĂȘn bi n s theo quy t c sau: tĂȘn bi n s luĂŽn vi t thÆ° ng ch u tiĂȘn, vĂ
vi t hoa ch cĂĄi u tiĂȘn cho cĂĄc ch k ti p, vĂ d userName, userLastName,
userMotherMaidenName v.v.
LÆ°u Ăœ r ng ch cĂĄc ch cĂĄi vĂ s m i Æ° c dĂčng t tĂȘn cho bi n s , vĂ luĂŽn b t
Ăąu tĂȘn b ng ch cĂĄi.
CĂł nhi u lo i bi n s lÆ°u tr nhi u lo i thĂŽng tin, vĂ ngay m i lo i thĂŽng tin cĆ©ng
cĂł th cĂł nhi u lo i khĂĄc nhau n a. NhÆ° s (number) lĂ m t lo i giĂĄ tr c a bi n s , vĂ
dÆ° i nĂł cĂČn cĂł cĂĄc lo i khĂĄc nhÆ° s nguyĂȘn (integer), s ... khĂŽng nguyĂȘn
(floating, double). B n cĆ©ng cĂł th dĂčng bi n s ch a cĂĄc chu i (chu i g i t t cho
chu i ch cĂĄi), chu i cĂł th ch cĂł 1 ch cĂĄi, nhi u ch cĂĄi hay lĂ khĂŽng cĂł gĂŹ h t, t t
c cĂĄc chu i sau Ăąy u h p l : "ablsdfjksl", "a", " ", "". Khi vi t m t chu i thĂŹ c n
dĂčng d u ngo c kĂ©p ("") b t u vĂ k t thĂșc chu i.
Trong cĂĄc ngĂŽn ng l p trĂŹnh khĂĄc nhÆ° Java, C++, hay ngay c ActionScript 2.0 trong
Flash MX 2004 thĂŹ b n ph i xac nh trÆ° c lo i thĂŽng tin nĂ o b n s lÆ°u trong bi n
s . NhÆ°ng v i ActionScript 1 (trong FlashMX) thĂŹ b n khĂŽng c n lĂ m vi c nĂ y. VĂ d
bi n s userName lĂșc u ch a 1 chu i, nhÆ°ng sau Ăł l i ch a 1 s nguyĂȘn thĂŹ cĆ©ng
v n h p l .
NgoĂ i chu i vĂ s , cĂČn cĂł nhi u lo i khĂĄc n a nhÆ°ng chĂșng ta s c p t i vĂ o
nh ng bĂ i sau.
i u ki n
Trong nh ng trÆ° ng h p chĂșng ta khĂŽng bi t nĂȘn ra l nh cho Flash ph i lĂ m gĂŹ cho
thĂch h p v i t ng tĂŹnh hu ng thĂŹ ta cĂł th dĂčng " i u ki n" ra l nh cho Flash.
8. VĂ d n u nhÆ° b n ra l nh cho Flash khĂŽng cho ngÆ° i dĂčng coi m t o n phim trong
Flash n u nhÆ° user dÆ° i 18 tu i, n u user trĂȘn 18 tu i thĂŹ hĂŁy chÆĄi o n phim y.
TrÆ° c tiĂȘn, Flash s so sĂĄnh s tu i c a user v i s 18, n u nhÆ° s tu i c a user tho
mĂŁn i u ki n chĂșng ta t ra thĂŹ Flash s cĂł 1 giĂĄ tr true t phĂ©p so sĂĄnh trĂȘn, vĂ
ngÆ° c l i s lĂ false i u ki n s luĂŽn luĂŽn lĂ Ășng (true) hay sai (false). M t giĂĄ tr
ch cĂł Ășng hay sai thĂŹ Æ° c g i lĂ boolean. Sau khi th c hi n phĂ©p so sĂĄnh vĂ cĂł
Æ° c k t qu t phĂ©p so sĂĄnh trĂȘn, Flash s ch n m t trong 2 gi i phĂĄp do chĂșng ta
Æ°a ra cho t ng trÆ° ng h p.
ĂŽi khi chĂșng ta c n cĂł nhi u i u ki n hÆĄn ch lĂ ÆĄn gi n "true" hay "false", vĂ d
nhÆ° b n mu n Flash chÆĄi o n phim A cho ng ÆĄi trĂȘn 18 tu i, dÆ° i 18 nhÆ°ng trĂȘn 13
thĂŹ chÆĄi o n phim B, vĂ nh ng ai dÆ° i 13 thĂŹ chÆĄi o n phim C.
VĂČng l p
Con ngÆ° i lĂ m ra computer vĂŹ lÆ° i khĂŽng mu n lĂ m nhi u, mĂ bĂĄn cĂĄi cho
computer. Nh t lĂ ph i lĂ m i lĂ m l i 1 vi c nĂ o Ăł thĂŹ cĂ ng nhĂ m chĂĄn. VĂŹ v y vĂČng
l p (loop) là m t y u t quan tr ng trong cåc ngÎn ng l p trÏnh. AS cƩng v y, b n có
th dĂčng vĂČng l p trong script.
Trong vĂČng l p, " i u ki n" r t quan tr ng. M i vĂČng l p c n cĂł i m b t u vĂ
i m d ng vĂ m t i u ki n bĂĄo hi u i m d ng c a vĂČng l p. VĂ d nhÆ° b n
mu n cho vĂČng l p ch y 10 l n thĂŹ s cĂł 1 bi n s dĂčng m vĂČng l p, b t u t
0, M i vĂČng l p ch y thĂŹ bi n s nĂ y s tÄng thĂȘm 1. Khi t i 9 thĂŹ vĂČng l p s d ng
l i. Sau Ăąy minh ho c a vĂČng l p nĂ y:
1. M t s l nh tr ÆĄc vĂČng l p
2. B t u vĂČng l p, set bi n s counter = 0
3. LĂ m m t s l nh trong vĂČng l p
4. TÄng bi n s counter +=1
5. N u bi n s counter nh hÆĄn 9, tr l i bÆ° c th 3
6. Ra kh i vĂČng l p, vĂ ti p t c chÆ°ÆĄng trĂŹnh.
Ăąy chĂșng ta b t d u bi n s counter = 0 vĂŹ quy Æ° c thĂŽng thÆ° ng cĂĄc ngĂŽn ng l p
trĂŹnh u b t u vĂČng l p 0.
M t i m ĂĄng lÆ°u Ăœ c a vĂČng l p lĂ i u ki n Æ° c xĂ©t trÆ° c khi th c hi n cĂĄc l nh
trong vĂČng l p. Trong vĂ i trÆ° ng h p, i u ki n s Æ° c xĂ©t sau khi th c hi n cĂĄc
l nh trong vĂČng l p. ChĂșng ta cĆ©ng cĂł th ngÆ°ng vĂČng l p trÆ° c i m d ng c a nĂł, vĂ
i u nĂ y s Æ° c c p t i vĂ o bĂ i k ti p
LĂ m nh ng i u khĂŽng tÆ° ng
L nh, hĂ m, phĂ©p tĂnh, bi n s , thĂŽng s , i u ki n, vĂČng l p lĂ nh ng ph n cÄn b n
trong ngĂŽn ng l p trĂŹnh, vĂ cĂĄi nĂ y thĂŹ ai cĆ©ng bi t nhÆ°ng lĂ m sao ph i h p l i thĂ nh
m t chÆ°ÆĄng trĂŹnh hoĂ n h o m i lĂ cĂĄi khĂł.
ChÆ°ÆĄng trĂŹnh ÆĄn gi n ch lĂ m t t p h p l nh cho computer gi i quy t 1 v n
nĂ o Ăł. VĂŹ v y trÆ° c khi vi t 1 chÆ°ÆĄng trĂŹnh chĂșng ta c n ph i xĂĄc nh "v n " c n
ph i gi i quy t. VĂ d th c t ngoĂ i i, m b n nh b n ra ch mua gĂ . NhÆ°ng ch
9. ÆĄn gi n nĂłi ra ch mua gĂ thĂŹ chÆ°a vĂŹ bi t mua gĂ s ng hay gĂ lĂ m r i. n u mua
gĂ s ng thĂŹ mua lo i nĂ o v.v. Ăł lĂ chÆ°a nĂłi t i mua gĂ ch nĂ o, giĂĄ c ra sao v.v.
N u nhÆ° b n m nĂłi rĂ” lĂ ra ch b n thĂ nh, mua 1 con gĂ mĂĄi d u, n ng kho ng 2 kg,
v i giĂĄ kho ng 10000 thĂŹ th t lĂ d dĂ ng cho b n ph i khĂŽng?
Bi t Æ° c v n mua gĂ r i thĂŹ tĂŹm cĂĄch mua gĂ . B n ph i "lĂȘn k ho ch", nĂȘn nh
b n ch hay i taxi ra ch b n thĂ nh. N u i taxi i hĂŁng nĂ o, tĂŹm s phone g i,
v.v. cĂČn nh b n ch i thĂŹ nh tĂȘn nĂ o. R i nĂȘn m c qu n ĂĄo nĂ o i ch . Ra n ch
thĂŹ ph i m c c lĂ m sao, tr ti n m t hay ghi s n . B n th y khĂŽng, t m t chuy n
mua gĂ ÆĄn gi n v y mĂ cĂł th t n c ngĂ y tr i lĂȘn chÆ°ÆĄng trĂŹnh
Vi t AS, b n c n ph i lÆ°u Ăœ t i t t c m i vi c dĂč nh cĂĄch m y cho Flash cĂł th
lĂ m Ășng theo nhÆ° Ăœ b n trong m i tĂŹnh hu ng. CĂĄc chÆ°ÆĄng trĂŹnh cĂł bug khĂŽng ph i
vĂŹ ngÆ° i vi t d mĂ vĂŹ chÆ°a nghÄ© t i h t m i tĂŹnh hu ng thĂŽi.
TĂłm l i, i u quan tr ng trong l p trĂŹnh lĂ kh n ng phĂąn tĂch m t v n chĂnh thĂ nh
nhi u v n nh cho t i khi khĂŽng cĂČn nh hÆĄn n a, vĂ sau Ăł xĂąy d ng chÆ°ÆĄng
trĂŹnh t gi i quy y cĂĄc v n nh lĂȘn d n cho t i v n chĂnh.
Vi t mĂŁ hoĂ n ch nh
B (bug) ÆĄn gi n lĂ l i c a chÆ°ÆĄng trĂŹnh mĂ b n t o ra. Bug cĂł th ch lĂ nh ng l i
cĂș phĂĄp ÆĄn gi n, hay lĂ nh ng l i ph c t p do cĂĄch b n gi i quy t v n trong mĂŽi
trÆ° ng runtime.
trĂĄnh cĂł bug trong script c a b n thĂŹ b n nĂȘn t n nhi u thĂŹ gi vĂ o giai o n phĂąn
tĂch, thi t k chÆ°ÆĄng trĂŹnh cho script c a b n. Ki m tra cĂĄc o n code nhi u l n, vĂ
óng vai "computer" cho th t gi ng, ng suy nghĩ, mà thi hà nh cåc l nh trong script
c a b n. Vi t t ng o n code nh r i rĂĄp l i v i nhau (vĂŹ v y mĂ l p trĂŹnh theo hÆ° ng
i tÆ° ng Æ° c s d ng nhi u nh t)
N u script c a b n cĂł bug thĂŹ ng th mĂ n n lĂČng, vĂŹ khĂŽng cĂł chÆ°ÆĄng trĂŹnh nĂ o do
con ngÆ° i lĂ m ra mĂ khĂŽng cĂł bug c . VĂŹ v y b n ng c g ng viĂȘt code sao cho
tuy t h o khĂŽng cĂł l i. N u cĂł bug thĂŹ b n di t bug thĂŽi B n cĂł th chu n b
"chi n u" v i bug b ng cĂĄch vi t code sao cho d hi u vĂ d c, vi t nhi u chĂș
thĂch cho cĂĄc o n mĂŁ. ĂŽi khi di t bug (debug) r t ÆĄn gi n nhÆ°ng cĂł khi cĆ©ng r t
kho mĂ bi t bug Ăąu di t. Flash cĂł kĂšm theo vĂ i cĂŽng c giĂșp b n debug d dĂ ng
hÆĄn, chĂșng ta s nĂłi t i cĂĄc cĂŽng c nĂ y trong bĂ i t i.
Gi th 04: ViĂȘt code trong Flash, Writing code in Flash
Khi b n vi t script, b n s dĂčng t t c nh ng t khĂła, vĂ kĂœ hi u v.v. V y trÆ° c tiĂȘn
chĂșng ta s phĂąn tĂch m t o n script sau Ăąy. o n script nĂ y g n vĂ o 1 button.
ActionScript
on (press) {
var myVariable = 7;
var myOtherVariable = "Macromedia";
10. for (var i=0; i<10; i++) {
trace(i);
if (myVariable + 3 == 5) {
trace(myOtherVariable);
}
}
}
DĂČng u tiĂȘn xĂĄc nh nh ng o n code sau Ăł Æ° c kĂch ho t khi mĂ user nh n vĂ o
nĂșt. hĂ m on(press) ch cĂł th s d ng trong vĂ o trong nĂșt mĂ thĂŽi. NgoĂ i ra b n cĂł
th dĂčng on(release) n u nhÆ° b n mu n kĂch ho t o n mĂŁ trĂȘn sau khi user nh n nĂșt,
vĂ buĂŽng tay.
D u ngo c mĂłc {} u vĂ cu i o n code, gĂłi o n code Ăł vĂ o lĂ m m t, vĂ u
Æ° c kĂch ho t khi nh n nĂșt. CĂĄc b n lÆ°u Ăœ th y o n code Æ° c vi t vĂ o trong cho
d nh n th y c o n code nĂ y ph thu c vĂ o on(press). CĂĄc b n nĂȘn vi t lĂči vĂ o
trong cho nh ng o n code ph thu c vĂ o 1 l nh hay hĂ m nĂ o Ăł.
DĂČng th hai l p ra bi n s (mĂŹnh s vi t t t lĂ var nhe) tĂȘn myVariable, vĂ t giĂĄ tr
b ng 7 cho nĂł. tÆ°ÆĄng t hĂ ng k ti p l p ra var tĂȘn lĂ myOtherVariable vĂ cho giĂĄ tr
c a nĂł lĂ "Macrmedia". C 2 cĂąu nĂ y Æ° c k t thĂșc b ng d u ch m ph y ;
DĂČng th 4 chĂnh lĂ vĂČng l p (mĂŹnh s g i lĂ loop cho ti n nhe) for (s nh c t i cĂĄc
lo i loop phĂa dÆ° i) vĂ cĂĄc i u ki n c a loop nĂ y. NĂł s l p 10 l n v i i u ki n
b t u lĂ i=0 vĂ nĂł s tÄng thĂȘm 1 cho m i l n l p cho t i khi nĂł lĂȘn t i 9. TÆ°ÆĄng t
nhÆ° on(press), for loop cĆ©ng cĂł o n code cho riĂȘng nĂł, vĂ ÆĄc b c quanh b ng { }
vĂ o n code trong Ăł ch kĂch ho t khi mĂ cĂĄc i u ki n c a for loop Æ° c th a mĂŁn.
DĂČng th 5 lĂ l nh trace(), l nh nĂ y ch vi t thĂŽng tin ra output window trong lĂșc
b n lĂ m vi c v i Flash, user s khĂŽng th y Æ° c. K ti p lĂ i u ki n, if lĂ t khoĂĄ
trong Flash, vĂ nĂł s ki m tra k t qu c a phĂ©p so sĂĄnh myVariable + 3 ==5. N u mĂ
k t qu lĂ Ășng thĂŹ nĂł s kĂch ho t l nh trace trong, vĂ s vi t ra output window giĂĄ
tr c a myOtherVariable
V y lĂ b n ĂŁ th y m t o n script hoĂ n ch nh b ng AS r i. Ti p theo chĂșng ta s nĂłi
n vĂ i ph n khĂĄc c a AS.
Output window
trĂȘn chĂșng ta cĂł nh c t i output window, mĂ khĂŽng nĂłi rĂ” lĂ gĂŹ. Output window lĂ
m t window trong software Flash, vĂ ch xu t hi n khi mĂ b n ch y th movie. N u
Flash compile movie cho b n vĂ phĂĄt hi n ra l i thĂŹ Flash s vi t ra cĂĄc output
window nĂ y. Trong khi ch y th movie, thĂŹ l nh trace() m i cĂł th vi t cĂĄc thĂŽng tin
ra output window. Output window r t quan tr ng trong vi t "di t b ", dĂčng nĂł chung
v i trace b n cĂł th quan sĂĄt cĂĄc thĂŽng s , bi n s , cĂĄc i tÆ° ng, thu c tĂnh i
tÆ° ng .v.v
Trong lĂșc h c AS, b n cĂł th vi t m t an script ng n khĂŽng lĂ m gĂŹ c nh ng ch
vi t thĂŽng tin ra output window, nhÆ° o n code trĂȘn.
11. Th c hĂ nh: vi t thĂŽng tin ra output windown
CĂĄch t t nh t hi u rĂ” ch c nÄng c a output window lĂ s d ng nĂł. BĂąy gi mĂŹnh s
vi t m t o n code ng n g i thĂŽi tin ra output window nhe.
1. T o m t file m i
2. Ch n frame u tiĂȘn c a movie, m Action panel. Ch nh kĂch thÆ° c cho action
panel l n vi t, vĂ nh dĂčng expert mode
3. KĂch chu t vĂ o ph n vi t script vĂ vi t cĂąu sau: trace("hello world");
4. Ch y th movie (Control + Enter)
5. B n th y gĂŹ output window? (N u output window c a b n chÆ°a m thĂŹ hĂŁy nh n
F2)
Gi ng nhÆ° action panel, output window cĂł 1 cĂĄi pop-up menu nho nh trĂȘn gĂłc
ph i. B n cĂł th dĂčng nĂł copy, xoĂĄ hay save n i dung c a output window hay cĂł
th tĂŹm ki m ch , v.v. NgoĂ i ra, pop-up menu nĂ y cĂł ph n cho b n ch nh ch "di t
b ", b n cĂł th ch n khĂŽng c n output window in ra cĂĄc l i (none), hay ch in l i
(error), hay ch in c nh bĂĄo (error) vĂ cu i cĂčng lĂ in ra chi ti t cĂĄc l i hay c nh bĂĄo
(verbose)
Bi n s c c b vĂ toĂ n b
trong gi th 3, chĂșng ta cĂł nh c n variable (bi n s ) dĂčng lÆ°u tr thĂŽng tin.
VĂ s d ng variable trong AS r t d dĂ ng. B n ch c n n nh giĂĄ tr cho variable. VĂ
d : myVariable = 7. ChĂșng ta t o variable cĂł tĂȘn lĂ myVariable vĂ n nh 7 lĂ giĂĄ tr
cho nĂł. (b n cĂł th t tĂȘn cho variable lĂ b t c gĂŹ b n muĂŽn)
BĂąy gi b n cĂł th th vi t o n code sau:
ActionScript
var1= 7;
var2= "hello world";
trace ("var1: " + var1+ " /var2: " + var2);
Khi b n ch y th movie thĂŹ output window s cĂł hĂ ng ch sau: var1: 7 /var2: hello
world VĂŹ s 7 vĂ "hello world" Æ° c ch a trong var1 vĂ var2 s Æ° c in ra.
Variable cĂł 2 lo i, local vĂ global. Global variable (bi n s toĂ n b ) thĂŹ b n cĂł th
truy c p giĂĄ tr c a nĂł b t c nÆĄi nĂ o trong movie. T o global variable khĂŽng ĂČi
h i m t b n ph i lĂ m m t cĂĄi gĂŹ c bi t c , b n cĂł th dĂčng nĂł nhÆ° cĂĄch trĂȘn, vĂ
Flash t ng bi n nĂł thĂ nh global variable. Flash movie dĂčng h th ng level, vĂ
timeline c a movie chĂnh lĂ root leve (g c), cĂČn cĂĄc movie clip cĆ©ng chĂnh lĂ m t
Flash movie nh trong Flash movie l n. CĂĄc hĂŹnh nh, script trong m t movie clip
lĂ 1 level th p hÆĄn root level.
12. Local variable (bi n s c c b ), khĂĄc v i global variable, local variable ch cĂł tr
truy c p trong cĂčng m t o n code, hay trong cĂčng m t timeline. Khi dĂčng local
variable thĂŹ khi ra kh i timeline hay o n code Ăł thĂŹ Flash s xoĂĄ local variable ra
kh i b nh . Mu n t o local variable thĂŹ dĂčng t khoĂĄ var trÆ° c tĂȘn c a local
variable, vĂ d : var myLocal = "This is local"; B n ch c n dĂčng t khoĂĄ var 1 l n
thĂŽi, nh ng l n dĂčng sau Ăł thĂŹ ch c n dĂčng tĂȘn c a local variable thĂŽi. VĂ d o n
code:
ActionScript
var myLocal = 9;
myLocal = 11;
trace(myLocal);
PhĂ©p so sĂĄnh vĂ cĂĄc phĂ©p tĂnh
So sĂĄnh 2 giĂĄ tr trong AS r t ÆĄn gi n, dĂčng cĂĄc kĂœ hi u toĂĄn h c nhÆ° <, >, =
Khi n nh giĂĄ tr thĂŹ dĂčng d u =, vĂ cho khĂĄc bi t thĂŹ khi so sĂĄnh dĂčng ==. o n
code sau xét coi giå tr c a a có b ng 7 khÎng, và in k t qu ra output window. Và khi
test o n code sau, b n s th y true output window
ActionScript
var a = 7;
trace(a == 7);
N u b n dĂčng l n = v i == thĂŹ s b l i runtime ch Flash s khĂŽng cĂł th tĂŹm Æ° c
l i nĂ y cho b n.
B n cĂł th dĂčng == so sĂĄnh 2 chu i m u t :
ActionScript
var myString = "Hello World.";
trace(myString == "Hello World.");
trace(myString == "hello world.");
Khi b n test o n code trĂȘn thĂŹ b n s cĂł Æ° c "true" vĂ "false" output window, vĂŹ
l n so sĂĄnh th nh t thĂŹ b ng nhau, nhÆ°ng l n th hai thĂŹ khĂŽng vĂŹ ch H vĂ h khĂĄc
nhau.
N u b n mu n th coi 2 giĂĄ tr cĂł khĂĄc nhau khĂŽng thĂŹ dĂčng ky hi u !=
ActionScript
var a = 7;
trace(a != 9);
trace(a != 7);
HĂ m trace u tiĂȘn s cho ra "true" vĂŹ 7 khĂĄc 9, vĂ cĂĄi th hai thĂŹ s cho ra "false"
13. N u b n mu n th giĂĄ tr coi l n hÆĄn hay nh hÆĄn thĂŹ dĂčng > vĂ <
ActionScript
var a = 7;
trace(a < 8);
trace(a > 6);
trace(a < 1);
o n code trĂȘn s cho ra "true", "true" vĂ "false" trong output window vĂŹ "a" qu th t
nh hÆĄn 8 vĂ l n 6, nhÆ°ng khĂŽng nh hÆĄn 1.
N u b n mu n th giĂĄ tr coi l n hÆĄn hay b ng nhau ho c lĂ nh hÆĄn hay b ng nhau
thĂŹ dĂčng kĂœ hi u >= vĂ <=
ActionScript
var a = 7;
trace(a <= 9);
trace(a >= 5);
trace(a >= 7);
o n code trĂȘn s cho ra 3 k t qu "true" c .
B n cĂł th thay i giĂĄ tr c a variable v i cĂĄc phĂ©p tĂnh ÆĄn gi n nhÆ° c ng (+), tr (-
), nhĂąn (*), chia (/). VĂ d mu n thĂȘm 4 vĂ o giĂĄ tr c a a thĂŹ vi t a = a + 4. AS cĆ©ng cĂł
cĂĄch vi t t t nhÆ° Java, C++ cho vĂŹ d nĂ y, a += 4 N u b n mu n thĂȘm 1 vĂ o a thĂŹ b n
cĂł th vi t nhÆ° 2 cĂĄch trĂȘn a = a +1 vĂ a += 1 vĂ cĂČn cĂĄch th 3 a++ . D u ++ ch lĂ m
tÄng thĂȘm 1 cho giĂĄ tr Ăł thĂŽi. CĂł 2 cĂĄch dĂčng ++, 1 lĂ sau variable nhÆ° cĂĄch trĂȘn,
vĂ 1 cĂĄch thĂŹ trÆ° c variable. BĂąy gi thÆ° o n code sau:
ActionScript
var a = 7;
trace(a++);
trace(a);
output window b n s th y 7 r i m i t i 8. dĂČng th 2, hĂ m trace s cho ra giĂĄ tr
c a a trÆ° c r i m i tÄng giĂĄ tr c a a lĂȘn thĂȘm 1. BĂąy gi xem vĂ d khĂĄc:
ActionScript
var a = 7;
trace(++a);
trace(a);
output window b n s th y 8 vĂ 8. dĂČng th 2 c a vĂ d nĂ y, hĂ m trace s tÄng
giĂĄ tr c a a trÆ° c r i m i cho ra giĂĄ tr c a a. TÆ°ÆĄng t nhÆ° ++, AS cĆ©ng cĂł cĂĄch vi t
t t cho giĂŁm giĂĄ tr c a variable lĂ d u -, -=, =- vĂ --. PhĂ©p tĂnh nhĂąn vĂ chia thĂŹ ch cĂł
*, *=, /, /= thĂŽi.
i u ki n
Trong AS vĂ cĂĄc ngĂŽn ng khĂĄc, if ... else chĂnh lĂ cĂĄc t khoĂĄ c a i u ki n. Ti ng
14. vi t cĂł nghÄ©a lĂ "n u ... n u khĂŽng". T khoĂĄ if dĂčng k t qu c a s so sĂĄnh nĂ o Ăł
i t i quy t nh kĂch ho t m t o n code. o n code sau s so sĂĄnh giĂĄ tr c a
variable a v i 7, n u Ășng thĂŹ Flash s chÆĄi frame 10
ActionScript
if (a == 7) {
gotoAndPlay(10);
}
T khoĂĄ if luĂŽn b t u cho 1 i u ki n vĂ ti p theo s lĂ s so sĂĄnh. LuĂŽn t code so
sĂĄnh gi a ngo c ÆĄn (). T t c cĂĄc code Æ° c kĂch ho t n u i u ki n Æ° c tho
mĂŁn s trong Ăąu ngo c mĂłc {}.
T khoĂĄ else b sung cho if trong trÆ° ng h p b n mu n th c hi n m t o n code n u
i u ki n c a if khĂŽng Æ° c th a mĂŁn. VĂ d :
ActionScript
if (a == 7) {
gotoAndPlay(10);
} else {
gotoAndPlay(15);
}
N u trÆ° ng h p c n th a mĂŁn nhi u i u ki n thĂŹ cĂł th dĂčng cĂș phĂĄp if .... else if ...
else. B n cĂł th cĂł bao nhi u cĂĄi else if cĆ©ng Æ° c.
NĂŁy gi ta chi nĂłi t i i u ki n d a trĂȘn 1 s so sĂĄnh, nh ng AS cĆ©ng cho phĂ©p dĂčng
so sĂĄnh a h p (compound comparision). Trong i u ki n c a Flash ta cĂł th dĂčng
nhi u so sĂĄnh i t i m t k t qu chĂnh xĂĄc hÆĄn. VĂ d n u nhÆ° a l n 10 vĂ a ph i
nh hÆĄn 15 thĂŹ ra l nh cho Flash chÆĄi frame 10.
ActionScript
if ((a > 10) and (a < 15)) {
gotoAndPlay(10);
}
T khoĂĄ and (cĂČn cĂł th Æ° c vi t lĂ &&) yĂȘu c u ph i tho mĂŁn i u ki n c a 2
phĂ©p so sĂĄnh. B n cĆ©ng cĂł th dĂčng t khoĂĄ or (cĂČn cĂł th Æ° c vi t lĂ ||)n u nhÆ° ch
c n tho mãn 1 i u ki n trong 2 phép so sånh thÎi.
ActionScript
if ((a > 10) or (a < 15)) {
gotoAndPlay(10);
}
VĂČng l p
CĂș phĂĄp c a vĂČng l p (loop) thĂŹ hÆĄi r c r i hÆĄn so v i cĂș phĂĄp c a i u kiĂȘn if. nhÆ°ng
15. nĂł tÆ°ÆĄng t nhÆ° C, C++, Java. G m cĂł 3 lo i vĂČng l p chĂnh lĂ for loop, while loop
vĂ do-while loop
for loop Æ° c coi lĂ vĂČng l p chĂnh v i t khoĂĄ for vĂ cĂș phĂĄp c a nĂł nhĂŹn nhÆ° sau:
ActionScript
for(var i=0;i<10;i++) {
trace(i);
}
N u b n cho ch y o n code trĂȘn thĂŹ b n s cĂł Æ° c t s 0 t i 9 output window.
for loop tÄng giĂĄ tr c a variable i trong su t quĂĄ trĂŹnh th c hi n loop. i u ki n c a
for loop cĂł 3 ph n chĂnh, vĂ Æ° c cĂĄch bi t b i d u ch m ph y ( . u tiĂȘn lĂ i u
ki n b t u v i vi c t o local variable cho for loop var i=0. ph n nĂ y for loop ch
th c hi n cĂł 1 l n duy nh t lĂșc b t Ăąu. Ph n th hai lĂ i u ki n chĂnh c a for loop
i<10, s Æ° c th c hi n m i vĂČng l p. N u i u ki n nĂ y tho mĂŁn thĂŹ m i ti p t c
vĂČng l p. VĂ ph n cu i cĂčng lĂ phĂ©p tĂnh cho s ti p n i c a for loop m i vĂČng l p,
Ăąy lĂ i++ nĂȘn giĂĄ tr c a i s Æ° c tÄng sau m i vĂČng l p trÆ° c khi vĂČng l p m i
b t u. 3 ph n nĂ y u Æ° c b vĂ o trong ngo c ÆĄn (). CĂČn nh ng code th c hi n
trong m i vĂČng l p thĂŹ trong ngo c mĂłc {}. BĂąy gi chĂșng ta gi lĂ m computer vĂ
ch y cĂĄi for loop nĂ y.
1. T o local variable vĂ n nh giĂĄ tr cho nĂł b ng 0
2. Ki m tra giĂĄ tr c a i cĂł nh hÆĄn 10 khĂŽng, n u nh hÆĄn 10 thĂŹ vĂČng l p th c
hi n cĂĄc code trong {}, cĂČn khĂŽng thĂŹ t i bÆ° c th 5
3. hĂ m trace vi t giĂĄ tr c a i output window
4. c ng 1 vĂ o giĂĄ tr c a i, vĂ tr v bÆ° c th 1
5. ra kh i for loop
T i bÆ° c th 5 thĂŹ giĂĄ tr c a i s b ng 10
while loop v i t khoĂĄ while cĂł cĂș phĂĄp nhĂŹn tÆ°ÆĄng t nhÆ° sau:
ActionScript
while (a > 0) {
// code th c hi n trong while loop
}
ÆĄn gi n hÆĄn for loop, while loop tÆ°ÆĄng t nhÆ° i u ki n if ÆĄn gi n, th c hi n cĂĄc
code trong vĂČng l p n u i u ki n c a while loop Æ° c thoĂŁ mĂŁn, vĂŹ v y b n d dĂ ng
r i vĂ o trÆ° ng h p vĂČng l p vĂŽ h n, vĂ d n n tĂŹnh tr ng treo mĂĄy. Trong o n code
trĂȘn, b n ph i lĂ m th nĂ o cho co 1 lĂșc a s nh hay b ng 0 cho vĂČng l p ng ng
l i.
Gi ng nhÆ° while loop, do-while loop cĂł cĂș phĂĄp nhĂŹn nhÆ° sau:
ActionScript
16. do {
// code th c hi n trong do-while loop
} while (a > 0);
Ch khĂĄc v i while loop lĂ do-while loop th c hi n code trong vĂČng l p trÆ° c r i m i
ki m tra i u ki n. (while loop ki m tra i u ki n r i m i ch y code trong vĂČng l p)
Mu n phĂĄ ra kh i quĂĄ trĂŹnh t hĂ nh c a 3 lo i loop trĂȘn thĂŹ dĂčng l nh break vĂ
continue. L nh break s phĂĄ ra kh i loop hoĂ n toĂ n trong khi l nh continue thĂŹ ch
phĂĄ ra kh i vĂČng l p hi n t i vĂ b t u vĂČng l p m i. T o ra m t vĂ d c th r t
ph c t p, nĂȘn chĂșng ta t m khoan bĂ n t i 2 l nh nĂ y cho t i cĂĄc bĂ i sau.
HĂ m
Cho t i bĂąy gi cĂĄc script c a chĂșng ta u Æ° c vi t vĂ o frame u tiĂȘn c a moive,
cĂĄch nĂ y ch t t cho nhÆ°ng chÆ°ÆĄng trĂŹnh ÆĄn gi n, nhÆ°ng n u mĂ chÆ°ÆĄng trĂŹnh tr
nĂȘn ph c t p thĂŹ Ăąy khĂŽng ph i lĂ cĂĄch. HĂ m (function) s cho phĂ©p chĂșng ta c u t o
vĂ qu n lĂœ code d dĂ ng hÆĄn trong cĂĄc chÆ°ÆĄng trĂŹnh ph c t p. DÆ° i Ăąy lĂ m t
function ÆĄn gi n:
ActionScript
function myFunction(num) {
var newNum = num + 3;
return newNum;
}
Fuction b t u b ng t khoĂĄ function, tĂȘn c a function cĂł th lĂ b t c ch gĂŹ nhÆ°
cĂĄch b n t tĂȘn cho variable, nhÆ°ng lÆ°u Ăœ cĂĄch t tĂȘn cho fuction lĂ m sao ngÆ° i
ta c tĂȘn cĂł th bi t Æ° c ch c nÄng c a function. Theo sau tĂȘn c a function s lĂ
thĂŽng s (parameter, cho ng n mĂŹnh s g i thĂŽng s lĂ param trong cĂĄc bĂ i vi t nĂ y)
Æ° c trong ngo c ÆĄn (). Function cĂł th co 1
hay nhi u param hay khĂŽng c n param cĆ©ng Æ° c. Param ch ng qua ch la variable
Æ° c dĂčng trong function, nhÆ°ng variable nĂ y Æ° c truy n t ngoĂ i vĂ o khi function
Æ° c g i. o n code Æ° c function th c hi n s n m gi a ngo c mĂłc {}. BĂąy gi
chĂșng ta phĂąn tĂch o n code trĂȘn. Khi function myFunction Æ° c g i, thĂŹ param num
Æ° c truy n vĂ o, sau Ăł function myFunction t o ra m t local variable tĂȘn lĂ
newNum, vĂ n nh giĂĄ tr c a newNum b ng giĂĄ tr c a param num c ng v i 3. Sau
Ăł myFunction dĂčng l nh return n nh giĂĄ tr c a newNum lĂ k t qu c a
myFunction. L nh return lĂ l nh c bi t ch Æ° c dĂčng trong function mĂ thĂŽi.
L nh nĂ y s k t thĂșc function.
s dĂčng function nĂ y, dĂčng nĂł nhÆ° m t l nh hay hĂ m c a AS, gi ng nhÆ° lĂ trace()
v y Ăł. Ăąy lĂ vĂ d : var a= myFunction(7);. TrÆ° c tiĂȘn t o m t local var r i sau n
nh giĂĄ tr c a local var nĂ y b ng k t qu c a myFunction v i param lĂ 7, vĂ cu i
cĂčng thi local var nĂ y s b ng 10.
M t trong Æ°u i m c a function lĂ b n cĂł th tĂĄi s d ng. DÆ° i Ăąy lĂ hĂ ng code
dĂčng chung 1 fuction vĂ cho 3 k t qu khĂĄc nhau
ActionScript
17. trace(myFunction(7));
trace(myFunction(13));
trace(myFunction(2));
Khi ch y o n code nĂ y thĂŹ output windown s lĂ 10, 16 vĂ 5. VĂ cĂł th tĂĄi s d ng
nĂȘn chĂșng ta ch c n thay i code trong myFunction thĂŹ t t c cĂĄc k t q a cĂł Æ° c
t g i function nà y cƩng thay i theo luÎn.
Dot Syntax
M t i u b n s th y r t nhi u trong quĂĄ trĂŹnh h c AS lĂ dot syntax (h ng bi t d ch
sao bĂąy gi ) Dot syntax lĂ phÆ°ÆĄng phĂĄp Æ° c dĂčng trong l p trĂŹnh theo hÆ° ng i
tÆ° ng (oob: object oriented programming).
Ăąy lĂ m t vĂ d c a dot syntax. N u b n mu n l y cÄn bĂŹnh phÆ°ÆĄng c a m t s , vĂ
trong Flash ĂŁ cĂł s n function lĂ m chuy n nĂ y r i, vĂ hĂ m nĂ y thu c v i tÆ° ng
toĂĄn, tĂȘn lĂ Math. V y mu n g i function nĂ y thĂŹ trÆ° c tiĂȘn b n ph i g i tĂȘn i tÆ° ng
mĂ fucntion nĂ y tr c thu c, Ăł lĂ Math, theo sau Ăł lĂ d u ch m (dot), vĂ r i t i tĂȘn
c a function Ăł lĂ sqrt. CĂĄch vi t nhÆ° sau:
ActionScript
var a = Math.sqrt(4);
M t cĂĄch dĂčng dot syntax khĂĄc lĂ truy c p c tĂnh hay variable c a m t i
tÆ° ng, nhÆ° lĂ movie clip.
ActionScript
var a = myClip._x;
var a = myClip.myVariable;
ChĂșng ta s c p n i tÆ° ng Math vĂ MovieClip trong cĂĄc bĂ i t i, cĂČn bĂąy gi
thĂŹ quan tr ng lĂ b n n m Æ° c khĂĄi ni m v dot syntax.
ChĂș gi i
M t trong c tĂnh c n cĂł c a l p trĂŹnh viĂȘn lĂ vi t code lĂ m sao cho d c vĂ d
hi u. NhÆ°ng nhi u khi dĂč khi vi t cĂł c g ng cĂĄch m y thĂŹ nh ng o n code Ăł v n
khĂł hi u cho ngÆ° i xem, vĂŹ v y m i c n nh ng l i chĂș gi i. Mu n chĂș gi i trong AS
thĂŹ ch c n dĂčng kĂœ hi u// trÆ° c cĂąu chĂș gi i Ăł. N u chĂș gi i nhi u hÆĄn vĂ i dĂČng thĂŹ
cĂł th dĂčng ki u sau/* ..... chĂș gi i ....*/.
ActionScript
/*
chĂș gi i:
c ng 2 cho a
c ng 2 cho b
*/
a += 2; // add 2 a
18. // add 2 to b
b += 2;
Debugging
ThÆ° ng thĂŹ th i gian di t b t n g n 1/3 th i gian phĂĄt tri n chÆ°ÆĄng trĂŹnh. N u b n
n m v ng Æ° c "nghĂȘ thu t" di t b thĂŹ b n s rĂșt ng n Æ° c r t nhi u th i gian. CĂł 3
cĂĄch di t b h u hi n lĂ : phĂąn tĂch, vi t message ra output window vĂ dĂčng AS
debugger.
V i cĂĄc lo i b ÆĄn gi n thĂŹ phĂąn tĂch cĂĄc o n code s giĂșp b n b t trĂșng con b c n
di t. DĂčng output window theo dĂ”i cĂĄc i tÆ° ng, vĂČng l p, i u ki n, vĂ nh vĂ o
Ăł b n cĂł th bi t Æ° c ch nĂ o trong code cĂł v n , cu i cĂčng lĂ dĂčng AS debugger
có s n trong Flash. Debugger window cho phép b n có th coi h t t t c moi thà nh
ph n trong movie c a b n, cho phĂ©p b n dĂčng AS b t ch khi nĂ o vĂ ch nĂ o b n
mu n. Tham kh o thĂȘm ph n tr giĂșp c a Flash bi t cĂĄch dĂčng debugger.
Gi th 05: i u khi n lu ng movie, Control the flow of the movie
S d ng AScript lĂ cĂĄch i u khi n movie ÆĄn g n nh t, nhung l i hi u qu nh t.
ChÆ°ÆĄng nĂ y b n s h c cĂĄch :
âą lĂ m sao d ng Movie trĂȘn frame
âą Sao nh y t frame nĂ y n frame kia
âą t o nĂșt cho phĂ©p i u khi n movie
âą t o m t slide show ÆĄn gi n
âą t o m t bi u di n y ..
D ng movie
Ăąy lĂ cĂąu l nh stop:
ActionScript
stop();
Khi b n dĂčng cĂąu l nh nĂ y , movie ch t m d ng frame mĂ b n t cĂąu l nh. CĂĄc
animation bĂȘn trong movieClip vĂ cĂĄc file h a v n ti p t c ch y trĂȘn frame Ăł.
NhÆ°ng animation c a time line s b d ng.
cho animation c a timeline ti p t c ch y, ta s d ng m t lĂȘnh ÆĄn gi n Ăł lĂ l nh
play.. ta s bĂ n n nĂł sau.
VĂ d
T i frame 1, b n hĂŁy th m t text box vĂ vi t vĂ o Ăł Ch A
T i frame 2, b n hĂŁy th m t text box vĂ vi t vĂ o Ăł Ch B
T i frame 3, b n hĂŁy th m t text box vĂ vi t vĂ o Ăł Ch C
BĂąy gi b n hay t cĂąu l nh stop(); vĂ o Frame 2, b n se th y ch A xu t hi n r t
19. nhanh r i n ch B, nhÆ°ng ch C s ko th y xu t hi n,, ÆĄn gi n vĂŹ cĂąu l nh stop()
ĂŁ d ng animation c a timeline t i Frame 2.
Nh y t frame nĂ y n frame kia
M t cĂąu l nh cÆĄ b n c a AS lĂ cĂąu l nh gotoAndPlay. CĂąu l nh nĂ y giĂșp b n cĂł th
nh y t frame nĂ y n frame mĂ b n mu n. B n cĂł th sÆ° d ng s th t c a frame
hay lĂ tĂȘn c a frame
ActionScript
gotoAndPlay(7);
gotoAndPlay(20);
gotoAndPlay("my frame label")
b n cĂł th s d ng nhi u movies , hay cĂČn g i lĂ c nh(scene) . N u CĂąu l nh
gotoAndPlay ch cĂł m t tham s , thĂŹ tham s Ăł lĂ frame. NhÆ°ng n u cĂł 2 tham s ,thĂŹ
tham s u ti n lĂ tĂȘn c a scene, cĂČn tham ss th 2 lĂ s th t c a frame hay tĂȘn
frame.
ActionScript
gotoAndPlay("My Scene","My Frame");
Khi b n dĂčng gotoandPlay,movies s nh y n frame mĂ b n g i , vĂ ti p t c ch y,
nhÆ°ng n u b n mu n nĂł nh y n frame vĂ d ng l i, b n co th s d ng gotoAndStop
. CĂąu l nh nĂ y dĂčng y h t nhÆ° gotoAndPlay, v i l a ch n 1 tham s hay 2 tham s .
NgoĂ i ra cĂł thĂȘm 2 cĂąu l nh cĆ©ng h at ng gi ng gotoAndStop , Ăł lĂ nextFrame
and prevFrame
hi u rĂ” hÆĄn v cĂĄc cĂąu l nh nĂ y, ta s i ti p ph n sau...
T o nĂșt (button)
NĂșt lĂ m t trong 3 bi u tÆ° ng (symbol) chĂnh trong Flash, 2 cĂĄi kia lĂ movie cilps vĂ
hĂŹnh
T o m t button
CĂł nhi u cĂĄch t o nĂșt. M t trong nhÆ°ng cĂĄch Ăł lĂ ch n Insert, New Symbol t
Menu. M t h p tho i s hi n lĂȘn vĂ h i b n t tĂȘn vĂ l a ch n bi u tÆ° ng c a b n lĂ
lo i Movie clip, button, hay h a. B n hĂŁy ch n Button.
BĂąy gi trong c a s chĂnh c a Flash s thay i, timeline c a button s thay th
timeline c a movie chĂnh. CĂł 4 frames trong timeLine c a button. ChĂșng cĂł tĂȘn lĂ
Up, Over, Down, HIt. CHĂșng th hi n 3 tr ng thĂĄi c a button, vĂ vĂčng h at ng c a
button.
20. N u b n t m t h a, ch ng h n lĂ m t vĂČng trĂČn, trong frame u tiĂȘn(UP) vĂ ko
cĂł gĂŹ trong 3 frame sau, tr ng thĂĄi Over vĂ Down c a button s gi ng nhÆ° tr ng thĂĄi
c a Up. VĂng ho t ng c a button cĆ©ng tÆ°ÆĄng t nhÆ° v y.
M t khĂĄc , b n cĂł th t o cĂĄc hi u ng khĂĄc nhau cho button c a b n. VĂ d n u b n
i m u c a vĂČng trĂČn lĂ mĂ u xanh Frame OVER,cĂł nghÄ©a lĂ khi b n Æ°a chu t qua
button, button s chuy n sang mĂ u xanh.
Khi b n t o xong 1 button, b n tr lai movie timeline chĂnh. VĂ button c a b n ĂŁ s n
sĂ ng trong thÆ° vi n c a FLash. B n ch viĂȘc b m F11, tĂŹm button c a b n vĂ kĂ©o th
nĂł vĂ o nÆĄi nĂ o b n c n trĂȘn c a s thi t k .
T o script cho button
t script cho button, u tiĂȘn hĂŁy ch m m t button. Sau Ăł vĂ o c a s Action
b ng cĂĄch b m chu t ph i lĂȘn button vĂ ch n Action t menu xu t hi n.
HĂŁy Ch c ch n r ng c a s Action ĂŁ Æ° c t ch Expert. B n cĂł th ki m tra
bÄng m t popup menu gĂłc trĂȘn cĂčng bĂȘn ph i c a c a s .
Ăąy lĂ m t o n mĂŁ thĂŽng thÆ° ng cho button. B n cĂł th t nĂł trong c a s mĂŁ vĂ
sau Ăł ki m tra movie xem nĂł h at ng th nĂ o.
ActionScript
on (release) {
trace("You clicked the button!")
}
on : lĂ m t keyword, Æ° c g i ra x lĂ m t s ki n
Release : LĂ m t s ki n, khi ngÆ° i s d ng click vĂ o button vĂ nh chu t ra. o n
mĂŁ trace s Æ° c th c thi.
NgoĂ i ra Release cĂł th thay th b ng s ki n PRESS, s ki n nĂ y ch khĂĄc Release
ch khi ngÆ° i s d ng b m vĂ o button, o n mĂŁ trace s Æ°ÆĄc th c thi mĂ ko c n ph i
th chu t ra.
Trace : lĂ in ra mĂ n hĂŹnh dĂČng ch YOU CLICKED THE BUTTON.
Th c HĂ nh: T o m t Slide Show ÆĄn gi n...
CĂł l ko ph i di n t nhi u v Slide Show, cĂĄc b n hĂŁy tÆ° ng tÆ° ng giĂŽng Power
Point.. Khi chĂșng ta b m chu t, cĂĄc slide s chuy n sang slide khĂĄc.
1. M Flash, ch n New
2. Trong Layer 1, t Frame 1 n Frame 4, b n hĂŁy Ät cĂĄc bi u tÆ° ng hay hĂŹnh nh,
text khĂĄc nhau phĂąn bi t Æ° c cĂĄc frame
3. Sau Ăł b n t o m t layer m i, hĂŁy t m t button lĂȘn layer nĂ y.Ti p theo b n ch n
21. Frame 4 c a layer 2, vĂ b m F6. i u nĂ y m b o cho button c a b n s xu t hi n
trong t t c cĂĄc Frame c a Layer 1.
BĂąy gi copy o n mĂŁ sau vĂ o button c a b n, chĂș Ăœ nh lĂ copy vĂ o action c a
button, ch ko ph i vĂ o b t kĂŹ frame nĂ o
ActionScript
on (release) {
nextFrame();
}
Cu i cĂčng ch n Frame 1 Layer 1 action vĂ chĂšn o n code sau
ActionScript
stop();
HĂŁy ch y th slide show c a b n = cĂĄch b m Ctrl Enter.
5) XĂąy d ng m t presentation ÆĄn gi n:
Presentation nĂ y s d ng nguyĂȘn t c giĂŽng h t nhÆ° vĂ d Slide show trĂȘn, cĂĄc b n
hay down load file FLA xem .. easy
Gi th 06: i u khi n movie clip, Controlling Movie Clips
6th Hour i u khi n movie clip
B n s h c
1- ra l nh cho movie clip
2-T o playback cho animation
3-TĂm hi u Ăch(target) c a movie clip
4-T p vi t code cho movie clip
5-T o movie clip cĂł th ch y lĂči l i.
1) Ra l nh cho movie clip :
M t movie chĂnh cĂł th r t ÆĄn gi n. NĂ ch c n 1 frame vĂ m t movie clip. NhÆ°ng
b n thĂąn movie clip l i cĂł th lĂ m t animation dĂ i. Vi c nĂ y d dĂ ng th c hi n mĂ ko
c n Actioncript.
i u khi n Æ° c movie, b n ph i t tĂȘn cho movie clip. ChĂș Ăœ r ng m t movies
clip cĂł 2 tĂȘn, m t tĂȘn s d ng cho timeline . M t tĂȘn s d ng cho actioncript. 2 tĂȘn
nĂ y cĂł th t trĂčng tĂȘn nhau ho c khĂĄc tĂȘn nhau.
LĂ m sao t tĂȘn cho movie clip :
Ch n insert -----> New Symbol (ho c b m Ctrl F8), t tĂȘn cho movies clip
(nh l a ch n option movies clip, ch ko ph i lĂ button hay graphic)
TĂȘn nĂ y Æ° c s d ng cho timeline. vd: gear animation
Th movie gear animation vĂ o c a s thi t k .. PHĂa dÆ° i c a s properties, ban s
22. th y box instance name.. t tĂȘn cho movie
tĂȘn nĂ y Æ° c s d ng cho Action script , vd : gears
vĂ nhÆ° v y, khi b n l p trĂŹnh , tĂȘn s d ng lĂ gears , ch ko ph i gear animation.
b n cĂł th s d ng d u ch m Æ°a ra cĂĄc lĂȘnh cho movie c a b n. vĂ d
ActionScript
gears.stop();
gears.gotoAndStop(5);
Nh r ng movie clip luĂŽn cĂł level. N u o n mĂŁ Æ° c t trĂȘn chĂnh movieclip, b n
ko c n s d ng tĂȘn movies, ch c n gotoAndStop();. N u b n t c tĂȘn movie vĂ o,
Flash s tĂŹm movie c a b n t timeline chĂnh.. T c lĂ s ph i qua 2 level. ---> ch m
hÆĄn chĂșt.
2)Animation Playback Controller
HĂŁy down load source code t trĂȘn ph n download vĂ xem. V cÆĄ b n, chĂșng ta lĂ m
cĂĄc vi c sau:
- T o m t Movie , t tĂȘn lĂ gear animation
- t instance name lĂ gear(hÆ° ng d n trĂȘn)
- Frame u tiĂȘn c a time line chĂnh, chĂšn code
ActionScript
gears.stop();
-T o cĂĄc button Advance, Previous, Play, Stop, and Rewind
-Code cho cĂĄc button l n lÆ° t lĂ
Advance
ActionScript
on (release) {
gears.nextFrame();
}
Previous
ActionScript
on (release) {
gears.prevFrame();
}
Play
ActionScript
on (release) {
gears.play();
}
Stop
ActionScript
on (release) {
23. gears.stop();
}
Rewind
ActionScript
on (release) {
gears.gotoAndStop (1);
}
3) Target m t movie
Level cÆĄ b n u tiĂȘn c a Flash lĂ time line chĂnh(Level 0). N u b n mu n ra l nh
cho time line nĂ y, b n dĂčng code sau
_root.gotoAndStop();
th m chĂ n u b n t code time line chĂnh, b n ko c n _root. Ch c n
gotoAndStop();
Gi s n u b n cĂł m t movie trĂȘn time line, t c lĂ b n cĂł m t level sĂąu hÆĄn(level 1).
N u b n t time line chĂnh, mu n goi movie gears , b n ph i dĂčng cĂąu l nh
gears.gotoAndStop(7);
_root["gears"].gotoAndStop(7);
this["gears"].gotoAndStop(7);
C 3 cĂĄch trĂȘn u gi ng nhau.. Tuy nhiĂȘn this cĂł nghÄ©a lĂ level hi n hĂ nh. VĂ d trĂȘn,
level hi n hĂ nh c a this lĂ level 0. NhÆ°ng n u code t trong movie, level hi n hĂ nh
s lĂ level 1. B n ph i chĂș Ăœ.
Gi s b n cĂł m t movie khĂĄc bĂȘn trong movie, t c lĂ b n cĂł level 2. N u b n mu n
t level 1 g i n level 2, b n ph i dĂčng _parent.
Parent dĂčng gi ng nhÆ° root, nhÆ°ng khĂĄc ch , nĂł Æ° c g i t level trĂȘn. CĂČn root
Æ° c g i t level 0 (t c lĂ level g c).
Thu n l i t vi c s d ng root, this lĂ b n cĂł th gĂĄn bi n cho movie clips
ActionScript
var whichClipToUse = "gears";
this[whichClipToUse].stop();
Thu n l i c a v c s d ng this nhi u hÆĄn root ch , ko ph i lĂșc nĂ o m i th cĆ©ng
x y ra time line chĂnh, ĂŽi khi ta ch mu n nĂł x y ra m t level nh t nh. B i v y
this lĂ cĂĄch t t nh t goi level c a m t movie. Tuy nhiĂȘn trong nh ng trÆ°ÆĄng h p
ÆĄn gi n, hay nh t lĂ c t tĂȘn cho movies.
4) MĂŁ cho movie clip
24. ChĂșng ta ĂŁ bĂ n v button trĂȘn, v y v cÆĄ b n movie clip script cĆ©ng gi ng button,
Ăł lĂ
ActionScript
onClipEvent (load) {
trace("This clip has been loaded.");
}
onClipEvent : key word g i s ki n (gi ng on c a button)
load : s ki n nĂ y x y ra khi movie clip xu t hi n l n u tiĂȘn trĂȘn mĂ n hĂŹnh . NĂ ch
x y ra m t l n.
Nh r ng ngay c khi time line chĂnh b ng, movie clip n m trĂȘn time line v n ti p
t c ch y. S kiĂȘn enterFrame x y ra liĂȘn t c bĂȘn trong movie clip m i khi n m t
frame m i. S ki n nĂ y s th c thi o n mĂŁ m t cĂĄch liĂȘn t c cho n khi nĂł b k t
thĂșc.
ActionScript
onClipEvent (enterFrame) {
trace("This clip has entered a new frame.");
}
bĂąy gi hĂŁy copy 2 o n code trĂȘn vĂ o c a s action c a timeline chĂnh vĂ run .. b n
s th y
ActionScript
This clip has been loaded
This clip has entered a new frame
This clip has entered a new frame
This clip has entered a new frame
This clip has entered a new frame
dĂČng ch s ti p t c hi n ra cho n khi b n t t movie.
Gi th 07: d ch chuy n vĂ thay i movie, Moving and Changing Movie Clips
M t movie clip (MC) bao gi cĆ©ng cĂł cĂĄc thu c tĂnh, cho phĂ©p b n xĂĄc nh v trĂ,
phĂłng to thu nh , quay, th m chĂ lĂ m nĂł bi n m t.
ChÆ°ÆĄng nĂ y cĂĄc b n s bi t cĂĄch:
-thay i v trĂ c a mc
-xĂĄc inh v trĂ chu t
-lĂ m sao quay m t mc
-lĂ m sao phĂłng to mc
-lĂ m sao movie invisible
25. 1) V trĂ c a MC:
M i th trong Flash u cĂł v trĂ. V trĂ nĂ y Æ° c o b ng PIXEL. GĂłc trĂȘn cĂčng bĂȘn
trĂĄi c a mĂ n hĂŹnh lĂ v trĂ (0,0) .NĂł lĂ v trĂ giao c a hĂ ng ngang vĂ c t d c.
N u b n s d ng m t movie m c nh, thĂŹ gĂłc dÆ° i bĂȘn ph i s lĂ 550,400. CĂł nghia
lĂ 550 pixel t bĂȘn trĂĄi sang vĂ 400 pixel t bĂȘn trĂȘn xu ng.
nhĂŹn hĂŹnh sau rĂ” hÆĄn.
2) V trĂ c a Mouse:
CĆ©ng nhÆ° movie, mouse cĆ©ng cĂł th xĂĄc inh Æ° c t a .. CHĂș Ăœ thu t ng mouse
Ăąy lĂ nĂłi n con tr (cursor), ch khĂŽng ph i con chu t b n ang c m trĂȘn tay.. ^^
26. CĂł hai thu c tĂnh cÆĄ b n c a con tr , Ăł lĂ _xmouse vĂ _ymouse.
V y _xmouse vĂ _ymouse lĂ thu c tĂnh c a chĂnh i tÆ° ng mĂ chĂșng Æ° c gĂĄn. N u
b n s d ng trĂȘn time line chĂnh, thĂŹ chĂșng lĂ thu c tĂnh c a time line. N u b n s
d ng chĂșng trĂȘn movie clip, thĂŹ nĂł lĂ thu c tĂnh c a movie clip. N u xmous y mouse
lĂ thu c tĂnh c a time line chĂnh, nĂł s m c nh lĂ gĂłc trĂĄi trĂȘn cĂčng. N u xmouse
ymouse lĂ thu cc tĂnh c a 1 movie clip, nĂł s m c nh trung tĂąm c a MC.
H u h t cĂĄc trÆ° ng h p thu c tĂnh liĂȘn quan n movie chĂnh, b n nĂȘn dĂčng cĂĄch
_root._xmouse vĂ _root._ymouse
Ăąy lĂ m t o n code vĂ du
CODE
onClipEvent (enterFrame) {
trace(_root._xmouse);
trace(_root._ymouse);
trace("");
}
Khi b n ch y movie, b n s th y cĂĄc c p s Æ° c in ra, Ăł chĂnh lĂ t a x,y mouse
.HĂŁy d ch chuy n mouse lĂȘn gĂłc trĂĄi trĂȘn, b n s th y Ăł v trĂ mouse lĂ 0.0. ho c
gĂłc ph i dÆ° i, t a lĂ 550 400.
ChĂș Ăœ: khi b n Æ°a chu t ra ngoĂ i Flash window, t a chuĂŽt xmouse y mouse
khĂŽng thay i. N u b n di chuy n chu t th t nhanh t trung tĂąm c a c a s ra ngoĂ i
c a s , cåc giå tr cƩ v n ó cho n khi b n quay tr l i c a s . Và v y, b n ph i
luĂŽn lĂȘn k ho c c n th n trÆ° c khi dĂčng xmouse, y mouse
3) LĂ m movie quay
M t thu c tĂnh khac Ăł lĂ thu c tĂnh _rotation
Thu c tĂnh rotation ch p nh n giĂĄ tr lĂ gĂłc . M t vĂČng trĂČn chia ra 360 , mi n
giĂĄ tr c thu c tĂnh rotation lĂ -180 vĂ 180. B n cĂł th s d ng giĂĄ tr integer ho c
floating point.
GiĂĄ tr c a _rotation luĂŽn luĂŽn trong vĂČng -180 vĂ 180, vĂ d 179, ho c -179. NhÆ°ng
n u b n t nĂł lĂ 181, nĂł s hi u thĂ nh gĂłc -179.
v y quay m t movie, ÆĄn gi n lĂ t giĂĄ tr cho nĂł, b n cĆ©ng cĂł th s d ng cĂĄc
bi u toĂĄn ++, += thay i giĂĄ tr . HĂŁy xem vĂ d sau
CODE
myClip._rotation = 90;
myClip._rotation++;
_root["myClip"]._rotation = 45;
this._rotation += 0.5;
27. 4) Co giĂŁn Ă n h i m t MC:
B n cĂł th lĂ m co giĂŁn, thay i chi u dĂ i chi u r ng c a movie clip
Scale thu c tĂnh
THu c tĂnh lĂ m vi c nĂ y lĂ _xscale cho chi u ngang vĂ _yscale cho chi u d c.
CĂĄc giĂĄ tr Æ° c gĂĄn cho x,y scale lĂ ph n trÄm. CĂł nghÄ©a giĂĄ tr 100 lĂ 100 ph n trÄm
, Ăąy lĂ thu c tĂnh m c inh cho m t movie clip g c. B n cĂł th s d ng cĂĄc s nh
hÆĄn nhÆ° 50 lĂ m movie co l i. Ho c cĂł th s d ng s to hÆĄn, 200 giĂŁn movie ra.
Th m cĂł th dĂčng cĂĄc giĂĄ tr Ăąm l t movie.
vĂ d 07mousesclae.fla ch a m t o n mĂŁ mĂ chĂșgn ta s g p r t nhi u sau nĂ y. NĂł
ki m tra t a c a mouse,. Sau Ăł xĂĄc inh t mouse n trung tĂąm movie xa bao
nhiĂȘu. R i nĂł s d ng kho ng cĂĄch ,c chi u cao chi u r ng tĂnh ph n trÄm t l
cho movie clip.
CODE
onClipEvent (load) {
// get the original width and height of the mc
origWidth = this._width;
origHeight = this._height;
}
onClipEvent (enterFrame) {
// get the distance from the center of the mc to the mouse
dx = _root._xmouse-this._x;
dy = _root._ymouse-this._y;
// calculate the percentage of scale
sx = 100*dx/(origWidth/2);
sy = 100*dy/(origHeight/2);
// set the scale of the mc
this._xscale = sx;
this._yscale = sy;
}
ChĂș Ăœ Ăąy ta s d ng 2 thu c tĂnh m i, _width vĂ _height tr v chi u cao vĂ chi u
r ng c a movie clip b ng Pixel. CHĂșng Æ° c lÆ°u giĂș trong onClipEvent (load) vĂŹ
khi ta c n l y l i giĂĄ tr g c c a movie.
Thu c tĂnh _width, _height
S khĂĄc nhau gi a scale vĂ width,height Ă scale s d ng giĂĄ tr ph n trÄm. CĂČn width
height s d ng pixel . Movie cĂł th cĂł giĂĄ tr sau: width 75, height 45, nhÆ°ng scale
cho c xscale and yscale lĂ 100 ph n trÄm.
DÆ° i Ăąy lĂ m t vĂ d s d ng width height th y th cho xscale, yscale.
CODE
28. onClipEvent (enterFrame) {
// get the distance from the center of the mc to the mouse
dx = _root._xmouse-this._x;
dy = _root._ymouse-this._y;
// set the scale of the mc
this._width = dx*2;
this._height = dy*2;
}
b n cĂł th th y code nĂ y ng n g n hÆĄn ÆĄ trĂȘn. b i vĂŹ nĂł ko s d ng s kiĂȘn
onClipEvent(load) b i gĂĄi tr chi u dĂ i chi u cao c a movie g c ko c n lÆ°u tr . Ăąy lĂ
m t vĂ d cho th y s d ng width vĂ height ti n hÆĄn d ng xscale ,y scale.
5) Visibility
M t thu c tĂnh khĂĄc c a MC lĂ thu c tĂnh _visible , giĂĄ tr c a thu c tĂnh nĂ y lĂ giĂĄ tr
boolean true , false.
CODE
myClip._visible = false;
hĂŁy xem vĂ d 07visible.fla rĂ” hÆĄn.
Gi s ta khĂŽng mu n movie bi n m t h n, mĂ ch b m i, ta s d ng thu c tĂnh
_alpha . Thu c tĂnh cĂł giĂĄ tr t 0 n 100
CODE
myClip._alpha = 50;
Thu c tĂnh alpha lĂ kĂȘnh mĂ u th 4, tĂȘn lĂ alpha channel . 3 kĂȘnh u tiĂȘn lĂ red
,green, blue t o ra 7 mĂ u c u v ng. Khi b n nghe n h a 32 bit, cĂł nghÄ©a lĂ
nĂł 4 kĂȘnh mĂ u.. CĂČn 24 bit cĂł nghÄ©a ch c 3 kĂȘnh u tiĂȘn.
N u giĂĄ tr c a _visible lĂ 0 thĂŹ movie lĂ trong su t hoĂ n tĂČan vĂ cĂł th nhĂŹn th y t t
c m i th phĂa sau movie.
NhĂŹn hĂŹnh sau xem cĂčng 1 movieclip nhÆ°ng v i 3 giĂĄ tr alpha khĂĄc nhau, 10, 50
vĂ 100 (t trĂĄi sang)
Gi th 08: ch n, kéo th movie clip, Moving and Changing Movie Clips
1. Selection
29. B n ĂŁ bi t cĂĄch h c sao t o m t button vĂ cho phĂ©p ngÆ° i s d ng click vĂ o lĂ m
s ki n ho t ng. Tuy nhiĂȘn Ăąy ta s h c cĂĄch click vĂ o ch n l a m t i
tÆ° ng trĂȘn mĂ n hĂŹnh.
T o m t ch n l a, cĂł nghÄ©a lĂ user click vĂ o item , nhÆ°ng khĂŽng cĂł gĂŹ x y ra. NhÆ°
v y, ngÆ° i dĂčng cĂł th l a ch n vĂ thay i l a ch n.
ChĂșng ta s s d ng l a ch n nhÆ° bÆ° c u tiĂȘn h c kĂ©o th movie.
Button bĂȘn trong m t Movie method.
M t movie khĂŽng th ph n ng v i mouse click. KhĂŽng th s d ng cĂĄc s ki n nhÆ°
on (release) hay (Press). vĂŹ v y ta ph i tĂŹm cĂĄch ĂĄnh l a nĂł. Ăł lĂ s d ng m t
button bĂȘn trong movie. Button cĂł th x lĂœ Æ° c mouse click, vĂ mi n lĂ nĂł cĂł
l n bao trĂčm m t movie.
HĂŁy xem vĂ d 08buttoninmc.fla . Ta ch nhĂŹn th y m t movie clip trĂȘn mĂ n
hĂŹnh.nhÆ°ng th c ch t bĂȘn trong c a movie clip lĂ m t button.
t o ra kh nÄng select, ta ph i t o nhi u frame.Frame u tiĂȘn ch a m t button tĂȘn
lĂ offbutton. Button nĂ y cĂł mĂŁ lĂ
CODE
on (release) {
this.gotoAndStop(2);
}
b ng this, button s g i n movie clip mĂ nĂł n m trĂȘn y. Frame th 2 ch a nĂșt
tÆ°ÆĄng t nhu frame 1 , tĂȘn lĂ onbutton, nĂșt nĂ y cĂł m u hÆĄi sĂĄng hÆĄn ngÆ° i dĂčng
nh n ra khi nĂł Æ° c ch n.
CODE
on (release) {
this.gotoAndStop(1);
}
cu i cĂčng t vĂ o frame 1
CODE
stop();
BĂąy gi hĂŁy ch y xem.
PhÆ°ÆĄng th c hitTest
CĂł cĂĄch khĂĄc lĂ m movie cĂł th s lĂœ mouse click mĂ khĂŽng c n button, Ăł lĂ s
d ng s ki n onClipEvent(mouseDown) ho c lĂ onClipEvent(mouseUp)vĂ d
CODE
onClipEvent (mouseUp) {
this.gotoAndStop(2);
}
HĂŁy ch y vĂ d 08twomcs1.fla xem.B n s th y t i sao onClipEvent(mouseUp)
khĂĄc v i on (Release) . N u b n click vĂ o movie, c hai u ph n ng.B i vĂŹ t t c
movie clip nh n s ki n mouse up Æ° c g i n cho chĂșng.
30. Quy t inh movie nĂ o Æ° c click.
CĂł m t cĂĄch click vĂ o movie mĂŹnh mu n. Ăł lĂ s d ng v trĂ chu t xĂĄc nh.
S a o n mĂŁ thĂ nh nhÆ° sau
CODE
onClipEvent (mouseUp) {
if (this.hitTest(_root._xmouse, _root._ymouse)) {
this.gotoAndStop(2);
}
}
v y b ng cĂĄch rĂ ng bu c movie clip v i mouse location , ta cĂł th click movie ta
mu n.
VI t mĂŁ cho selection:
ChĂșng ta ph i cho phĂ©p User click lĂȘn movies nhi u l n vĂ thay i tr ng thĂĄi c a MC
t b t sang t t, hay t t sang b t.
o n mĂŁ sau cĂł th xĂĄc nh movie ang tr ng thĂĄi nĂ o vĂ g i nĂł n frame khĂĄc.
VI c nĂ y th c hi n b ng thu c tĂnh _currentFrame . Thu c tĂnh nĂ y s c giĂĄ tr 1
kh nĂł frame th nh t, giĂĄ tr 2 khi nĂł frame th 2.
CODE
onClipEvent (mouseUp) {
if (this.hitTest(_root._xmouse, _root._ymouse)) {
if (this._currentFrame == 1) {
this.gotoAndStop(2);
} else {
this.gotoAndStop(1);
}
}
}
BĂąy gi b n ĂŁ th y cĂĄc cĂĄch t o s ch n l a movie. CĂĄch thÆ° nh t ti n l i n u b n
mu n dĂčng c cĂĄc trang thĂĄi khĂĄc nhÆ° Over,up , down.. CĂĄch th hai thĂŹ khĂŽng c n
nhi u bi u tÆ° ng trong thÆ° vi n.
Enjoy..
2) KĂ©o m t movie clip
Bùy gi ta s h c kéo m t movie.
Có 2 cåch kéo movie, cåch th nh t làs d ng l nh . Cåch nà y r t d s d ng
nhÆ°ng nĂł khĂŽng cho b n nhi u l a ch n trong vi c s a i vĂ giĂĄm sĂĄt movie.
CĂĄch Drag cÆĄ b n:
2 cĂąu l nh drag co b n lĂ :startDrag vĂ stopDrag. b n dĂčng startDrag khi b n mu n
movie c a b n i theo chu t, cĂČn stopDrag khi b n mu n movie c a b n khĂŽng theo
chu t n a. Ăąy lĂ o n code cÆĄ b n :
CODE
onClipEvent (mouseDown) {
if (this.hitTest(_root._xmouse, _root._ymouse)) {
31. this.startDrag();
}
}
onClipEvent (mouseUp) {
if (this.hitTest(_root._xmouse, _root._ymouse)) {
this.stopDrag();
}
}
S ki n onClipEvent nhĂŹn tÆ°ÆĄng t nhÆ° ta ĂŁ lĂ m trĂȘn. ChĂșng s d ng hitTest
nh n bi t movie nĂ o ang Æ° c click. VĂ sau Ăł cĂąu l nh startDrag vĂ stopDrag Æ° c
s d ng. Khi chu t Æ° c b m xu ng, cĂąu l nh startDrag th c thi. VĂ ngÆ° c l i, khi
chu t th ra, stopDrag th c thi.
Hãy xem movie, b n s th y v i cåc cùu l nh drag, b n có th kéo cåc movie m t
cĂĄch c l p. NhÆ°ng chĂș Ăœ r ng b n khĂŽng th kĂ©o 2 movie cĂčng m t lĂșc. Ch m t
movie Æ° c kĂ©o t i m t th i i m. VĂŹ v y b n nĂȘn c n cĂĄch drag ph c t p vĂ linh
ng hÆĄn lĂ m ng d ng hay game.
Note: startDrag cĂł 5 thĂĄm s . Tham s th nh t lĂ giĂĄ tr True(ho c False) quy t
nh vi c trung tĂąm c a movie clip cĂł khĂła v i v trĂ chu t hay khĂŽng. CĂĄc tham s
cĂČn l i lĂ left, top, right, bottom. N u b n t chĂșng, movie c a b n ch cĂł th Æ° c
kéo theo cåc rà ng bu c ó.
KĂ©o nĂąng cao
BĂąy gi ta h c cĂĄch kĂ©o movie mĂ ko dĂčng cĂąu l nh startDrag vĂ stopDrag. V y lĂ m
th nĂ o??
B n c n cĂł 4 ph n mĂŁ sau trong movie c a b n:
Th nh t lĂ s ki n onClipEvent(load), s ki n nĂ y s t cho bi n global tĂȘn lĂ
dragging giĂĄ tr false. Khi bi n nĂ y true, t c lĂ bĂĄo hi u r ng movie cĂł th Æ° c kĂ©o.
Th hai, ngÆ°ĂČi dĂčng click vĂ o m t movie. CĂł nghÄ©a lĂ dragging = true .
Th ba, quå trÏnh kéo s ti p t c di n ra b i s ki n onClipEvent(enterFrame). S
ki n nĂ y ch ÆĄn gi n gĂĄn _x vĂ _y (thu c tĂnh c a movie clip) cho _root._xmouse vĂ
_root._ymouse(thu c tĂnh c a con tr ).
Th 4, n u ngÆ°ĂČi dĂčng th chu t , thĂŹ bi n dragging Æ° c gĂĄn false.
Sau Ăąy lĂ o n code y
CODE
onClipEvent (load) {
// start out not dragging
dragging = false;
}
32. 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 ch a 2 MC. Ki m tra movie, nhÆ°ng ch s d ng MC
bĂȘn trĂĄi. Ăąy lĂ MC lĂ m theo o n code trĂȘn. ChĂș Ăœ xem trung tĂąm movie ÆĄc khĂła
v i v trĂ chu t nhÆ° th nĂ o. NĂł lĂ m movie nh y ngay l p t c n u b n click vĂ o nĂł.
ThĂŽng thÆ° ng, khi b n mu n kĂ©o MC Ăł lĂȘn mĂ n hĂŹnh, b n khĂŽng mu n nĂł nh y t i
là m kh p v trà chu t v i trung tùm c a MC. Hãy kéo file xung quanh mà n
hĂŹnh.B n s th y khi b n click chu t vĂ o b t kĂŹ i m nĂ o trĂȘn movie, movie s l p t c
lĂ m kh p v trĂ click chu t v i trung tĂąm movie. i u nĂ y cĆ©ng tÆ°ÆĄng t v i cĂąu l nh
startDrag .
trĂĄnh i u nĂ y, chĂșng ta ch c n thĂȘm m t o n code nh . Khi ngÆ°ĂČi s d ng b m
chu t, chĂșng ta s l y offset, Ăąy lĂ kho ng cĂĄch t chu t cho n trung tĂąm c a
movie. Sau Ăł, thay th b ng vi c gĂĄn v trĂ chu t n trung tĂąm movie, ta se thĂȘm
vĂ o offset cho MC luĂŽn luĂŽn xu t hi n offset b i cĂčng m t giĂĄ tr khi ngÆ° i dĂčng
kéo.
TÆ° ng tÆ° ng , vĂ d ngÆ°ĂČi dĂčng click vĂ o m t i m cĂĄch trung tĂąm movie 5 pixel.
Sau Ăł ta luĂŽn mu n kho ng cĂĄch 5 pixel Ăł Æ° c duy trĂŹ. i u nĂ y lĂ m cho ngÆ° i
dĂčng cĂł th click vĂ o b t c i m nĂ o kĂ©o movie.
Ăąy lĂ code cho movie 2(bĂȘn ph i)
CODE
onClipEvent (load) {
// start out not dragging
33. dragging = false;
}
onClipEvent (mouseDown) {
if (this.hitTest(_root._xmouse, _root._ymouse)) {
// follow the mouse from now on
dragging = true;
// get the mouse offset
xOffset = this._x - _root._xmouse;
yOffset = this._y - _root._ymouse;
}
}
onClipEvent (enterFrame) {
if (dragging) {
// set to location of the mouse
this._x = _root._xmouse + xOffset;
this._y = _root._ymouse + yOffset;
}
}
onClipEvent (mouseUp) {
if (this.hitTest(_root._xmouse, _root._ymouse)) {
// don't follow the mouse any longer
dragging = false;
}
}
HĂŁy xem movie th y khĂĄc bi t gi a 2 o n code.
3) KĂ©o vĂ th
Bùy gi ta ã bi t kéo movie, v y ta s th nó ùu.?
V n lĂ b n mu n theo dĂ”i hĂ nh ng c a ngÆ° i s d ng vĂ xĂĄc inh ngÆ° i s dung
t movie Ăąu.
Basic Drop Zone
Ch c nÄng hitTest cĂł th Æ° c s d ng xĂĄc nh khi MC b Ăš lĂȘn nhau. Trong
o n mĂŁ sau, chĂșgn ta s d ng l nh startDrag o n mĂŁ kĂ©o th ÆĄn gi n i, nh Ăł
ta cĂł th t p trung vĂ o cĂĄc ch c nÄng m i.
Trong o n mĂŁ sau, ch c nÄng hitTest Æ° c s d ng so sĂĄnh MC Æ° c kĂ©o v i m t
movie khĂĄc tĂȘn lĂ dragZone trĂȘn m t lĂȘvl(root level)
CODE
onClipEvent (mouseDown) {
if (this.hitTest(_root._xmouse, _root._ymouse)) {
34. this.startDrag();
}
}
onClipEvent (mouseUp) {
if (this.hitTest(_root._xmouse, _root._ymouse)) {
this.stopDrag();
// see if this mc is inside the dropZone mc
if (this.hitTest(_parent.dropZone)) {
trace("Dropped in zone");
} else {
trace("Dropped outside zone");
}
}
}
ChĂș Ăœ hitTest khĂŽng Æ° c s d ng nhÆ° cĂĄc bĂ i trÆ° c, chĂșng ta thay th v trĂ _x vĂ _y
b i m t movie khĂĄc.
Lo i hitTest nĂ y so sĂĄnh v trĂ vĂ vĂčng Æ° c bao ph c a 2 movie clip. Trong trÆ° ng
h p nĂ y, nĂł Æ° c so sĂĄnh v i _parent.dropZone. N u cĂł 2 movie Ăš lĂȘn nhau, hitTest
tr giĂĄ tr True. xĂĄc inh xem MC nĂ o ang t n t i, hĂŹnh ch nh t c a c 2 movie
u Æ° c s d ng. i u nĂ y cĂł nghÄ©a lĂ khi b n s d ng 2 hĂŹnh trĂČng, nhÆ° trong vĂ
d , b n thĂąn chĂnh cĂĄc vĂČng trĂČn Ăł khĂŽng Æ° c ch m vĂ o mi n lĂ cĂĄc hĂŹnh ch nh t
c a 2 movie Æ° c dĂčng.
HĂŁy xem hĂŹnh minh h a. T t c cĂĄc movie Dragme u n m Ăš trĂȘn DropZone.
CĂł 2 cĂĄch s d ng hitTest. Th nh t lĂ s d ng t a x,y. ChĂșng ta cĂł th s d ng
movie clip nhÆ° v trĂ x,y, r i sau Ăł s d ng dropzone nhÆ° m t movie clip th nh t.
CODE
if (_parent.dropZone.hitTest(this._x,this._y)) {
V i o n code nĂ y, thay th vĂ d trĂȘn, movie clip s n m bĂȘn trong hĂŹnh ch nh t
c a vĂčng dropzone.
ChĂșng ta cĂł th thĂȘm m t bÆ° c n a v i hittest. B ng cĂĄch thĂȘm tham s th 3 cho
hitTest, chĂșng ta cĂł th dĂčng hitTest xem hĂŹnh d ng chĂnh xĂĄc c a movie clip vĂ
xĂĄc inh v trĂ x,y. Bi n th 3 nĂ y c n gĂĄn true n u b n mu n hĂ nh vi nĂ y. N u nĂł
false, nĂł se hĂ nh ng gi ng nhÆ° ch c nÄng hitTest bĂŹnh thÆ° ng. Ăąy lĂ o n code
CODE
if (_parent.dropZone.hitTest(this._x,this._y,true)) {
35. BĂąy gi movie kĂ©o th c a ta h at ng t t hÆĄn. N u b n s d ng vĂ d 08drop.fla,
movie bĂȘn ph i s s d ng o n mĂŁ gĂŽc, vĂ nĂł n m Ăš trĂȘn hĂŹnh ch nh t c a
dropzone. CĂĄc movie khĂĄc s d ng o n code ph c t p hitTest vĂ chĂșng cĂł trung tĂąm
nĂ m bĂȘn trong hĂŹnh d ng g c c a dropzone.
Gi th 09: L y thĂŽng tin t ngÆ° i dĂčng, Getting input from the user
Cho t i bĂąy gi , qua 8 gi lĂ m quen v i AS, t t c cĂĄc tĂĄc ng c a b n lĂȘn trĂȘn flash
u Æ° c lĂ m qua chu t. NhÆ°ng ngoĂ i chu t, b n cĂł th dĂčng bĂ n phĂm n p thĂŽng
tin vĂ o Flash.
LĂ m sao phĂĄt hi n khi ngÆ° i dĂčng b m phĂm
CĂł 3 cĂĄch phĂĄt hi n khi m t phĂm tĂȘn bĂ n phĂm b nh n. 1 lĂ dĂčng nĂșt, 2 lĂ dĂčng
i tÆ° ng Key, vĂ 3 lĂ dĂčng "listener" (ch cĂł Flash MX vĂ MX 2004)
1. PhĂĄt hi n qua nĂșt:
B n cĂł th dĂčng nĂșt phĂĄt hi n khi ngÆ° i dĂčng s d ng bĂ n phĂm. B n chi c n dĂčng
l nh x lĂœ s ki n on cho o n code c a nĂșt . VĂ d o n code sau s kĂch ho t khi
mĂ ngÆ° i dĂčng nh n phĂm "a".
ActionScript
on (keyPress "a"){
trace ("Key 'a' pressed");
}
Trong movie m u 09keybutton.fla cĂł m t nĂșt ÆĄn gi n n m trĂȘn mĂ n hĂŹnh vĂ vĂ i vĂ
d trong Ăł. N u b n cho ch y th movie vĂ nh n phĂm "a" thĂŹ Output window s cĂł
vi t ra dĂČng ch "Key 'a' pressed.". X lĂœ d ki n on(keyPress) nh lĂ ph i phĂąn
bi t d ng ch (case-sensitive) nĂȘn n u b n ch code cho nĂł nh n phĂm "a" thĂŹ nĂł s
khĂŽng th nh n Æ° c phĂm "A". May mĂ chĂșng ta cĂł th dĂčng bao nhi u b x lĂœ d
ki n cĆ©ng Æ° c.
N u b n mu n x lĂœ cĂĄc phĂm khĂĄc, nhÆ° cĂĄc phĂm mĆ©i tĂȘn, enter, thanh dĂ i (space
bar) ... thĂŹ b n ph i dĂčng cĂĄc code dĂ nh riĂȘng cho chĂșng. VĂŹ d b n mu n x lĂœ phĂm
mĆ©i tĂȘn trĂĄi (left arrow key) thĂŹ dĂčng o n code sau:
ActionScript
on (keyPress "<Left>") {
trace("Left pressed.");
}
VĂ sau Ăąy lĂ cĂĄc code dĂ nh cho cĂĄc phĂm c bi t:
âą <Right>
âą <Left>
âą <End>
âą <PageUp>
36. âą <Insert>
âą <PageDown>
âą <Down>
âą <Up>
âą <Delete>
âą <Tab>
âą <Backspace>
âą <Escape>
âą <Home>
âą <Enter>
âą <Space>
B n cĂł th h p nhi u d ki n l i chung v i nhau. VĂ d b n cĂł m t nĂșt vĂ nĂșt Ăł cĂł
phĂm t t lĂ "b". V y khi b n nh n nĂșt Ăł hay lĂ nh n phĂm "b" thĂŹ code c a nĂșt Ăł s
Æ° c kĂch ho t.
ActionScript
on (keyPress "b", release) {
trace("'b' pressed or button clicked.");
}
CĂĄc vĂ d trĂȘn u cĂł trong movie m u 09keybutton.fla
2. PhĂĄt hi n qua i tÆ° ng phĂm (key object)
M c dĂč nĂșt r t h u Ăch trong vi c phĂĄt hi n khi ngÆ° i dĂčng nh n phĂm, nhÆ°ng nĂșt l i
khĂŽng th phĂĄt hi n Æ° c trÆ° ng h p khi ngÆ° i dĂčng nh n phĂm vĂ khĂŽng nh t tay.
VĂ d n u b n lĂ m m t game b ng Flash, vĂ trong Ăł ngÆ° i chÆĄi cho th lĂ m cho cĂĄc
nhĂąn v t trong game di chuy n liĂȘn t c n u nhÆ° h nh n phĂm mĆ©i tĂȘn vĂ khĂŽng nhĂąt
tay lĂȘn.
Cho nh ng trÆ° ng h p nhÆ° v y, b n ph i dĂčng i tÆ° ng Key. i tÆ° ng Key lĂ t p
h p c a m t s hĂ m (function) vĂ h ng s (constant) Æ° c xĂąy d ng s n trong Flash.
B n cĂł th dĂčng cĂĄc hĂ m vĂ h ng s nĂ y biĂȘt Æ° c cĂĄc phĂm ang b nh n hay
khĂŽng. VĂ d , n u mu n ki m tra coi phĂm mĆ©i tĂȘn trĂĄi cĂł b ang nh n hay khĂŽng thĂŹ
dĂčng o n code sau:
ActionScript
if (Key.isDown(Key.LEFT)) {
trace("The left arrow is down");
}
HĂ m Key.isDown s cho ra k t qu Ășng hay sai ph thu c vĂ o thĂŽng s cĂł ph i lĂ
phĂm ang b nh n hay khĂŽng. H ng s Key.LEFT tÆ° ng trÆ°ng cho phĂm mĆ©i tĂȘn
trĂĄi. v y khi mĆ©i tĂȘn trĂĄi b nh n thĂŹ output window s cho ra hĂ ng ch "The left arrow
is down". DÆ° i Ăąy lĂ cĂĄc h ng s tÆ°ÆĄng t nhÆ° Key.LEFT c p trĂȘn
âą Key.BACKSPACE
âą Key.ENTER
âą Key.PGDN
37. âą 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
N u b n mu n ki m tra xem n u nh ng phĂm bĂŹnh thÆ° ng ang b nh n thĂŹ b n ph i
dĂčng Key.getCode l y mĂŁ s c a phĂm Ăł dĂčng trong hĂ m Key.isDown. Ăąy lĂ
code m u khi b n mu n ki m tra phĂm "a"
ActionScript
if (Key.isDown(Key.getCode("a")) {
trace("The left arrow is down");
}
Cho 2 vĂ d trĂȘn, b n cĂł th coi source Fla 09keyobject.fla
3. Key Listener
Key listener Æ° c dĂčng quan sĂĄt bĂ n phĂm vĂ thĂŽng bĂĄo cho Flash khi phĂm Æ° c
nh n.
cĂĄch th 2 chĂșng ta dĂčng i tÆ° ng Key ki m tra coi phĂm cĂł b nh n hay
khĂŽng, nhÆ°ng nĂł khĂŽng th bi t chĂnh xĂĄc lĂșc nĂ o thĂŹ phĂm b nh n. N u mĂ ngÆ° i
dĂčng nh n phĂm quĂĄ nhanh, trÆ° c khi onClipEvent(enterFrame) k p kĂch ho t i
tÆ° ng key ki m tra thĂŹ Flash s khĂŽng bao gi bi t Æ° c ngÆ° i dĂčng ĂŁ nh n phĂm.
M t b t ti n n a khi dĂčng cĂĄch th 2 lĂ n u b n mu n ngÆ° i dĂčng nh n phĂm nhi u
l n thĂŹ i tÆ° ng Key s khĂŽng phĂąn bi t Æ° c Ăł lĂ 1 l n nh n dĂ i hay lĂ nhi u cĂĄi
nh n th t nhanh.
VĂ v y Flash MX, MM cho chĂșng ta thĂȘm m t l a ch n n a lĂ Key listeners. b n cĂł
th dĂčng "listener" (cĂł th hi u nĂł nhÆ° m t quan sĂĄt viĂȘn) theo dĂ”i s ki n c a bĂ n
phĂm vĂ thĂŽng bĂĄo cho Flash ngay khi phĂm Æ° c nh n.
Listener cĂł 2 ph n. Ph n u lĂ ph n t o listener. B n ph i ra l nh cho listener nĂ y
chĂș Ăœ vĂ o s ki n c a bĂ n phĂm. Ăąy lĂ code cho t o listener
ActionScript
Key.addListener(_root);
38. L nh Key.addlistner t o listener cho i tÆ° ng trong thĂŽng s lĂ _root. VĂ i tÆ° ng
nĂ y s Æ° c thĂŽng bĂĄo v s ki n c a bĂ n phĂm.
Trong o n code trĂȘn, _root lĂ i tÆ° ng Æ° c thĂŽng bĂĄo v s ki n c a bĂ n phĂm.
NhÆ°ng khi nh n Æ° c thĂŽng bĂĄo thĂŹ _root ph i lĂ m gĂŹ? VĂŹ v y chĂșng ta c n ph i vi t
code x lĂœ s ki n cho _root. VĂ d o n code sau s Æ° c th c hi n khi _root nh n
Æ° c thĂŽng bĂĄo v s ki n bĂ n phĂm.
ActionScript
_root.onKeyUp = function() {
trace(Key.getAscii());
}
Khi ngÆ° i dĂčng nh n phĂm, r i nh t tay lĂȘn thĂŹ s t o ra s ki n onKeyUP, vĂ s ki n
nĂ y Æ° c thĂŽng bĂĄo t i _root (b n cĂł th thay th _root b ng b t kỳ i tÆ° ng nĂ o) vĂ
sau Ăł thĂŹ hĂ m Key.getAscii() s cho ra k t qu lĂ mĂŁ s ASCII tÆ°ÆĄng ng v i phĂm
v a Æ° c nh n, vĂ d A = 65, B = 66 .v.v
B n cĂł th xem cĂĄi fla m u 09keylistener.fla, trogn Ăł cĂł o n code trĂȘn (lÆ°u Ăœ lĂ
trong fla nĂ y s khĂŽng cĂł gĂŹ h t ngoĂ i o n code AS frame u tiĂȘn)
N u b n mu n bi t phĂm Æ° c nh t lĂ gĂŹ thay vĂŹ ASCII code thĂŹ b n cĂł th dĂčng
String.fromCharCode() cho ra k t qu b n mu n tĂŹm. Thay dĂČng
trace(Key.getAscii()); bÄng trace(String.fromCharCode(Key.getAscii()));
Th t ra ngoĂ i 3 cĂĄch trĂȘn, cĂČn m t cĂĄch n a lĂ dĂčng b x lĂœ s ki n onClipEven c a
movie clip theo d i s ki n keyDown, keyUp, nhÆ°ng cĂĄch nĂ y khĂŽng cĂČn Æ° c
dĂčng trong Flash MX n a, vĂŹ v y b n ch cĂł th cĂĄch nĂ y trong cĂĄc Flash trÆ° c MX
thĂŽi.
BĂ i T p: DĂčng phĂm di chuy n movie clip
1. T o m t file Flash m i
2. T o m t movie clip ÆĄn gi n
3. G n o n code nĂ y vĂ o movie clip Ăł
ActionScript
onClipEvent(enterFrame) {
if (Key.isDown(Key.LEFT)) this._x -= 5;
if (Key.isDown(Key.RIGHT)) this._x += 5;
if (Key.isDown(Key.UP)) this._y -= 5;
if (Key.isDown(Key.DOWN)) this._y += 5;
}[/b]
o n code trĂȘn ki m tra 4 phĂm mĆ©i tĂȘn vĂ di chuy n movie clip theo hÆ° ng c a mĆ©i
tĂȘn. B n hĂŁy th movie coi sao
4. Thay i o n code trĂȘn cho hoĂ n ch nh hÆĄn: t o 2 bi n [b]x, y[/b] cĂł giĂĄ tr tÆ°ÆĄng
Æ°ÆĄng v i v trĂ ban u c a movie clip, vĂ l p giĂĄ tr cho bi n [b]speed[/b] b ng 5.
M i frame c a movie, mĂŹnh s ki m tra 4 phĂm mĆ©i tĂȘn vĂ i u ch nh giĂĄ tr c a 2
39. bi n [b]x,y[/b] ch khĂŽng i u ch nh v trĂ c a movie clip, sau Ăł ph i h p v i bi n
[b]speed[/b] tĂŹm v trĂ m i cho movie clip, r i m i di chuy n movie clip t i Ăł:
[code]onClipEvent(load) {
x = this._x;
y = this._y;
speed = 5;
}
onClipEvent(enterFrame) {
if (Key.isDown(Key.LEFT)) {
x -= speed;
}
if (Key.isDown(Key.RIGHT)) {
x += speed;
}
if (Key.isDown(Key.UP)) {
y -= speed;
}
if (Key.isDown(Key.DOWN)) {
y += speed;
}
this._x = x;
this._y = y;
}
o n code trĂȘn cĂł 2 lÆĄi i m. Th nh t, chĂșng ta tĂŹm v trĂ m i c a movie clip trÆ° c
khi chĂșng ta di chuy n movie clip t i Ăł, vĂ nhÆ° v y chĂșng ta cĂł th ki m tra v trĂ
m i cĂł h p lĂœ khĂŽng (ĂĄo d ng rĂąt nhi u trong game), vĂ th hai lĂ r t ti n cho chĂșng
ta thay i t c di chuy n c a movie clip, ch c n thay i giĂĄ tr c a bi n speed
Nh p vÄn b n
Trong Flash, ngÆ° i dĂčng cĂł th nh p vÄn b n vĂ o cĂĄc khung, vĂ b n cĂł th dĂčng AS
l y nh ng vÄn b n Ăł. cho ngÆ° i dĂčng cĂł th nh p vÄn b n, b n ph i t o khung
input text vĂ t o cho 1 varible tÆ°ÆĄng ng v i gĂa tr trong khung input text Ăł.
(n u b n nĂ o chÆ°a bi t t o input text thĂŹ cĂł th download 3 cĂĄi CD hÆ° ng d n ÆĄ bĂȘn
box tĂ i li u tham kh o thĂȘm)
CĂĄc ch c nÄng vĂ thao tĂĄc lĂ m vi c v i chu i kĂœ t (string
ChĂșng ta cĂł r t nh iu thao tĂĄc v i chu i kĂœ t :
1. GhĂ©p 2 chu i l i v i nhau: dĂčng kĂœ hi u +. VĂ d b n cĂł variable tĂȘn lĂ myVariable
cĂł giĂĄ tr lĂ "Hello", vĂ mu n ghĂ©p ch "world" vĂ o sau Ăł thĂŹ dĂčng nhÆ° sau:
myVariable = myVariable + "world" vĂ k t qu cĂł Æ° c s lĂ "Hello world". B n
cĆ©ng cĂł th ghĂ©p nhi u hÆĄn 2 chu i l i v i nhau b ng cĂĄch trĂȘn.
2. Substrings. Substring lĂ m t chu i kĂœ t nh trong 1 chu i kĂœ t khĂĄc. VĂ d "ell"
40. lĂ substring c a "hello world" hay lĂ "hello" hay lĂ "elle" hay "hell".
B n cĂł th l y b t c substring nĂ o c a 1 string v i cĂș phĂĄp sau:
String.substring(start, end));. String lĂ i tÆ° ng chu i mĂ b n mu n trĂch ra m t
ph n, start lĂ s th t c a kĂœ t b t u cho chu i b n mu n lĂąy, vĂ end lĂ s th t
b t Ăąu cho ph n b n khĂŽng mu n l y. LÆ°u Ăœ r ng kĂœ t u tiĂȘ s cĂł s th t lĂ 0.
VĂ d v i o n code sau, output window s cho ra hĂ ng ch "lo W"
ActionScript
var myString = "Hello World.";
trace(myString.substring(3,7));
NgoĂ i ra cĂČn 1 cĂĄch n a dĂčng tÆ°ÆĄng t nhÆ° cĂĄch trĂȘn nhÆ°ng ch khĂĄc v thĂŽng s vĂ
cĂł cĂș phĂĄp nhÆ° sau: String.substr(start, length);. thĂŽng s 1 cho s th t c a ch
cĂĄi u tiĂȘn vĂ th hai cho chi u dĂ i c a chu i. o n code sau cĆ©ng s cĂł k t qu
tÆ° ng t nhÆ° cĂĄch 1
ActionScript
var myString = "Hello World.";
trace(myString.charAt(6));
CĂĄc hĂ m c a i tÆ° ng String
Sau Ăąy lĂ m t s hĂ m tiĂȘu bi u c a i tÆ° ng String.
1. indexOf: dĂčng tĂŹm s th t c a m t kĂœ t hay m t chu i nh trong i tÆ° ng
String. N u hĂ m indexOf tĂŹm khĂŽng th y kĂœ t hay chu i nh thĂŹ s cho ra k t qu -1.
Ăąy lĂ cĂș phĂĄp:myString.indexOf(substring,start)); substring lĂ kĂœ t hay chu i
mĂŹnh mu n tĂŹm, start lĂ s th t mĂŹnh b t u tĂŹm trong i tÆ° ng String. VĂ d :
ActionScript
var myString = "Hello World.";
//output: 6
trace(myString.indexOf("W",0));
//output: 2
trace(myString.indexOf("llo",0));
2. lastIndexOf: tÆ°ÆĄng t nhÆ° indexOf nhÆ°ng chĂșng ta tĂŹm kĂœ t cu i cĂčng i ngÆ° c
lĂȘn t ikĂœ t u tiĂȘn.
ActionScript
var myString = "Hello World.";
//output: 2
trace(myString.indexOf("l",0));
//output: 9
trace(myString.lastIndexOf("l"));
41. 3. toUpperCase/toLowerCase: dĂčng i chu i t vi t thÆ° ng sang vi t hoa vĂ
ngÆ° c l i
ActionScript
var myString = "Hello World.";
//output: HELLO WORLD
trace(myString.toUpperCase());
//output: hello world
trace(myString.toLowerCase());
4. length: lĂ c tĂnh c a Sring dĂčng tĂnh chi u dĂ i c a chu i.
ActionScript
var myString = "Hello World.";
//output: 12
trace(myString.length);
BĂ i t p:
1. m file 09form-noscripts.fla
2. ki m tra tĂȘn c a variable c a m i input text field qua property panel
3. ThĂȘm o n mĂŁ sau vĂ o nĂșt CLEAR
ActionScript
on (release) {
clearForm();
}
4. thĂȘm o n mĂŁ sau vĂ o nĂșt SUBMIT
ActionScript
on (release) {
submitForm();
}
5. ThĂȘm o n code sau vĂ o frame u tiĂȘn c a movie
ActionScript
function clearForm() {
firstName = "";
middleInitial = "";
lastName = "";
address = "";
city = "";
state = "";
zip = "";
phone = "";
comments = "";
42. }
function submitForm() {
if (middleInitial.length == 1) {
trace("Name: "+firstName+" "+middleInitial+". "+lastName);
} else {
trace("Name: "+firstName+" "+lastName);
}
}
R i b n test movie.
Gi th 10: T o VĂ i u Khi n VÄn B n, Creating and Controlling Text
Dynamic Text
B n cĆ©ng cĂł th hi n th vÄn b n b ng dynamic text field. KhĂĄc v i Input field mĂ
b n là m quen trong gi s 9, dynamic text field ch cho phép AS thay i n i dung
vÄn b n ch khĂŽng ph i lĂ ngÆ° i dĂčng. VĂŹ n i dung, hĂŹnh th c c a vÄn b n cĂł th
thay i b t c lĂșc nĂ o nĂȘn m i g i lĂ dynamic text
TrÆ° c tiĂȘn b n t o dynamic text b ng d ng c text trĂȘn thanh toolbar, nhÆ°ng thay vĂŹ
ch n "Input Text" trong property panel, b n ch n "Dynamic Text"
BÆ° c k ti p lĂ n i n i dung c a vÄn b n trong dynamic text field v i m t variable
b ng cĂĄch vi t tĂȘn c a variable Ăł vĂ o trong khung Var trong propery panel. VĂ d
nhÆ° b n t variable myText vĂ o trong khung Var thĂŹ khi b n thay i giĂĄ tr c a
myText thĂŹ vÄn b n trong dynamic text field cĆ©ng thay i gi ng nhÆ° giĂĄ tr c a bi n
myText. NgoĂ i ra b n cĂČn cĂł th thay i m t s l a ch n cho dynamic text field nhÆ°
"Single", "Multiline", or "Multiline No Wrap" x lĂœ trÆ° ng h p n i dung c a vÄn
b n quĂĄ dĂ i vĂ cĂČnn nhi u l a ch n khĂĄc n a. (N u b n chÆ°a n m v ng ph n nĂ y thĂŹ
cĂł th tham kh o thĂȘm v s d ng Flash trong CD Æ° c post box tĂ i li u)
nh d ng vÄn b n theo HTML
(HTML format)
nh d ng vÄn b n ki u HTML, b n ph i cho phĂ©p dynamic text field ch p nh n
nh d ng HTML (click vĂ o HTML icon trĂȘn property panel) vĂ sau Ăł b n cĂł th
dĂčng th HTML nh d ng vÄn b n c a b n. VĂ d o n code nĂ y s t o vÄn b n
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>";
43. 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.
SiĂȘu liĂȘn k t (hyper link) trĂȘn cĂł tĂĄc d ng gi ng nhÆ° trong HTML nhÆ° khĂĄc 1 i u lĂ
khĂŽng cĂł g ch dÆ° i
Sau Ăąy lĂ nh ng th HTML cĂł th dĂčng trong Flash MX
âą <B></B>: vi t m
âą <I></I>: vi t nghiĂȘng
âą <U></U>: g ch dÆ° i
âą <FONT FACE='Arial Black'></FONT>: ki u ch
âą <FONT SIZE='24'></FONT>: c ch
âą <FONT COLOR='#XXXXXX></FONT>: mĂ u ch
âą <A HREF=''></A>: link
âą <P></P>: an vÄn
âą <BR>: Xu ng hĂ ng
i TÆ° ng TextFormat
CĂČn m t cĂĄch khĂĄc nh d ng cho vÄn b n lĂ dĂčng i tÆ° ng TextFormat. lĂ m
Æ° c i u nĂ y, b n c n ph i t o ra 1 bi n t i tÆ° ng TextFormat. Sau Ăł b n cĂł th
nh giĂĄ tr cho cĂĄc thu c tĂnh c a nĂł. VĂ d b n mu n ki u ch Arial Black, c 26, vĂ
mĂ u thĂŹ dĂčng an code sau:
CODE
myFormat = new TextFormat();
myFormat.font = "Arial Black";
myFormat.size = 36;
myFormat.color = 0xFF0000;
textInstance.setTextFormat(myFormat);
B n cĂł th dĂčng i tÆ° ng TextFormat nhÆ° lĂ stylesheet trong cĂĄc file HTML, m t
khi b n t o nĂł ra thĂŹ b n cĂł th dĂčng nĂł b t c ch nĂ o trong movie
B n cĂł th coi cĂĄc an code trĂȘn trong file m u: 10formattext.fla
Variable ngoĂ i Flash
B n cĂł th l y bi n t ngoĂ i trang HTML vĂ o trong Flash thay i n i dung c a
Flash hay dĂčng vĂ o b t c chuy n gĂŹ. VĂ d b n ph i lĂ m 30 cĂĄi banner b ng Flash
cho 30 trang web, thĂŹ b n cĂł th ch lĂ m 1 cĂĄi banner thĂŽi, nhÆ°ng thay i n i dung
44. tuỳ theo t ng trang web. Mu n nh p vÄn b n hay giĂĄ tr c a bi n nĂ o t HTML, b n
ch c n thĂȘm vĂ i ch vĂ o sau cĂĄi tĂȘn c a movie trong ph n <object> vĂ <embed>
trong HTML.. o n mĂŁ HTML sau Ăąy nh p giĂĄ tr c a bi n txtName vĂ o trong Flash
HTML
<PARAM NAME=movie VALUE="10banner.swf?txtName=Dominico Savio!">
vĂ trong th <embed> thĂŹ b n thĂȘm ph n variable vĂ giĂĄ tr vĂ o sau tĂȘn file
HTML
src="10banner.swf?txtName=Dominico Savio!">
Khi movie load thĂŹ nĂł s t t o variable "txtname" vĂ t giĂĄ tr cho bi n nĂ y b ng
"Dominico Savio". B n cĂł th xem trang 10banner.html, 10banner.fla trong cĂĄi
source file xem chi ti t hÆĄn.
B n cĂł th lĂ m nhi u giĂĄ tr m t lĂșc cĆ©ng b ng cĂĄch nĂ y
10banner.swf?txtName=Dominico Savio!&gender=male"
NgoĂ i l y bi n t HTML, b n cĂČn cĂł th l y bi n t cĂĄc text file. CĂĄch nĂ y thĂch h p
khi b n cĂł nhi u bi n nh p vĂ o Flash, hay giĂĄ tr c a cĂĄc bi n quĂĄ dĂ i g n vĂ o
th HTML. B n ch c n dĂčng l nh loadVariables() lĂ m Æ° c i u nĂ y. VĂ d :
CODE
loadVariables("10external.txt", _root);
B n cĂł th coi thĂȘm v cĂĄch dĂčng loadVariables() bĂȘn box ActionScript
[BĂ i T p
M t vĂ d ÆĄn gi n ĂĄp d ng cĂĄc i u mĂ b n v a h c trong bĂ i nĂ y lĂ lĂ m m t cĂĄi
"news ticker" nhÆ° dÆ° i Ăąy:
DĂČng ch s ch y t bĂȘn ph i qua bĂȘn trĂĄi cho su t b n tin. B n cĂł th tham kh o
source fla: 10ticker.fla vĂ test nĂł cĂł khĂĄi ni m thĂȘm v "news ticker"
1. T o movie m i
2. T o dynamic text field, v i cao ch v a 1 hĂ ng, vĂ dĂ i b ng chi u ngang c a
stage, cho d nh n, b n cĂł th vi t vĂ i chÆ° trong Ăł, nhÆ° lĂ "text goes here"
3. T o variable cho text field nĂ y lĂ text
4. Ch n font, nĂȘn dĂčng ki u ch tÆ°ÆĄng t nhÆ° Courier New, sao cho b ngang c a
m i chÆ° b ng nhau
5. Con text field r i nh n F8 i thĂ nh Movie Clip, vĂ t cho nĂł 1 cĂĄi tĂȘn nhÆ° th
nà o tuỳ b n
6. Sau Ăł thĂŹ g n o n script sau vĂ o movie
CODE
onClipEvent(load) {
// t b n 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. ";
45. firstChar = 0; // b t u ch cĂĄi u tiĂȘn
lineLength = 50; // s ch cĂĄi t i a trĂȘn news ticker
// thĂȘm cĂĄc kho ng tr ng vĂ o trÆ° c dĂČng tin
for(var i=0;i<lineLength;i++) {
tickerText = " " + tickerText;
}
}
onClipEvent(enterFrame) {
// phĂĄt b n tin
text = tickerText.substr(firstChar,lineLength);
// thĂȘm ch cĂĄi kĂȘ ti p
firstChar++;
// phĂĄt l i b n tin sau m i l n k t thĂșc
if (firstChar > tickerText.length) {
firstChar = 0;
}
}
TrÆ° c tiĂȘn b n t o ra bi n tickerText ch a b n vÄn news ticker, bi n firstChar
ch a giĂĄ tr c a ch cĂĄi u tiĂȘn s th y trong news ticker, vĂ lineLenght lĂ s ch cĂĄi
cĂł th xu t hi n m t lĂșc trĂȘn news ticker. VĂ t t c cĂĄc u Æ° c cho vĂ o trong b s
lĂœ d ki n onLoad
Trong onEnterFrame, Flash s l y 50 ch cĂĄi u tiĂȘn b vĂ o bi n text ( trong
dynamic text field) cho nĂł hi n th lĂȘn mĂ n hĂŹnh. Sau Ăł di chuy n sang ch cĂĄi
th 2 b ng cĂąu firstChar++;, vĂ sau cĂčng lĂ ki m tra, n u b n tin ĂŁ Æ° c phĂĄt h t thĂŹ
phĂĄt l i t u.
6. B n cĂł th thay i giĂĄ tr c a lineLenght vĂ giĂĄ tr c a b n vÄn trong tickerText
hi u hÆĄn v 2 bi n nĂ y
7. BĂąy gi b n hĂŁy th dĂčng loadVariable() nh p b n tin t text file vĂ o coi cĂł
Æ° c khĂŽng. N u khĂŽng thĂŹ hĂŁy tr l i Ăąy h i mĂŹnh nhe
Happy flashing
Gi th 11: LĂ m vi c v i cĂĄc con s , ChÆ°ÆĄng nĂ y r t hay vĂ b Ăch!
ChĂșng ta ĂŁ nghiĂȘn c u v text vĂ strings trong cĂĄc chÆ°ÆĄng trÆ° c. BĂąy gi chĂșng ta s
nghiĂȘn c u v nh ng con s . B n s ph i ng v i nh ng con s trong Action
Script trong nhi u trÆ° ng h p, vĂŹ v y b n c n ph i hi u lĂ m sao s d ng chĂșng.
Nh ng phép toån (operator) và nh ng hà m (function) v s
Nh ng phĂ©p toĂĄn ÆĄn gi n
ChĂșng ta cĆ©ng ĂŁ h c qua cĂĄc phĂ©p toĂĄn ÆĄn gi n r i. BĂąy gi hĂŁy xem l i nhĂ©. D u +
và d u - s th c hi n phép toån c ng và tr , d u * th c hi n phép nhùn, d u / th c
hi n phép chia.
NgoĂ i ra, b n cĆ©ng cĂł th s d ng nh ng phĂ©p toĂĄn nhÆ° +=, -=, *=, /= lĂ m ÆĄn
gi n cho code c a b n. L y vĂ d hai cĂąu l nh dÆ° i Ăąy s th c hi n cĂčng m t cĂŽng
46. vi c lĂ c ng thĂȘm 7 vĂ bi n a
CODE
a = a + 7;
a += 7;
Nh ng phép so sånh
Nh ng phĂ©p toĂĄn so sĂĄnh nhÆ° == so sĂĄnh hai s xem cĂł b ng nhau khĂŽng, > (l n
hÆĄn), < (nh hÆĄn), <= (nh hÆĄn ho c b ng), >= (l n hÆĄn ho c b ng). Trong Action
Script chĂșng ta cĂł th so sĂĄnh m t s nguyĂȘn v i m t s th c. VĂ d nhÆ° 7.2 s l n
hÆĄn 7.
Math.abs
i tÆ° ng Math ch a m t t p h p cĂĄc hĂ m x lĂœ cĂĄc con s . HĂ m Math.abs s tr v
giå tr tuy t i c a m t s . B n hãy th o n code nà y xem k t qu th nà o nhé:
CODE
trace(Math.abs(-7));
Math.round
N u b n cĂł m t s th c, nhÆ°ng b n l i mu n hi n th cho ngÆ° i dĂčng xem dÆ° i d ng
s nguyĂȘn thay vĂŹ ph i cho h xem cĂĄc con s ph n th p phĂąn, b n hĂŁy s d ng hĂ m
Math.round. Th nhé:
CODE
trace(Math.round(7.2));
Math.ceil, Math.floor
Hai hĂ m khĂĄc dĂčng lĂ m trĂČn s th c thĂ nh s nguyĂȘn lĂ Math.ceil vĂ Math.floor.
HĂ m Math.ceil s lĂ m trĂČn s lĂȘn vĂ Math.floor s lĂ m trĂČn s xu ng. Th nhĂ©:
CODE
trace(Math.ceil(7.2));
trace(Math.floor(8.3));
Math.min, Math.max
CĂĄc b n cĂł th s d ng hai hĂ m nĂ y tĂŹm s l n hÆĄn vĂ s nh hÆĄn trong hai s . VĂ
d hĂ m Math.min(4, 5); s tr v 4, Min.math(4, 5); s tr v 5
Math.pow
Ăąy lĂ hĂ m l y lĆ©y th a, cĆ©ng ÆĄn gi n thĂŽi, tham s th nh t lĂ cÆĄ s , tham s th
hai là lƩy th a. Và d b n mu n l y 4 lu th a 3 thÏ vi t th nà y
47. CODE
Math.pow(4, 3);
Math.sqrt Ăąy lĂ hĂ m tĂnh cÄn, nhÆ°ng mĂ mĂŹnh xin nĂłi tr ÆĄc luĂŽn lĂ ngoĂ i hĂ m
Math.sqrt, b n cĂČn cĂł th s d ng hĂ m Math.pow v i lĆ©y th a nh hÆĄn 1 tĂnh cÄn.
VĂ d mu n l y cÄn 2 c a 4 thĂŹ cĂł th s d ng
CODE
Math.pow(4, .5);
ho c
Math.sqrt(4);
C hai cĂĄch trĂȘn u ra cĂčng m t k t qu lĂ 2.
HĂ m s lÆ° ng giĂĄc
Nh ng hĂ m c a object class mĂ cĂĄc b n Æ° c bi t trĂȘn cĂł v nhÆ° r t d h c. NhÆ°ng
cĂČn nh ng hĂ m v lÆ° ng giĂĄc nhÆ° sin, cosin thĂŹ âkhĂł nu tâ hÆĄn nhi u. M c dĂč b n cĂł
th b qua nh ng hĂ m nĂ y nhÆ°ng nh ng hĂ m lÆ° ng giĂĄc nĂ y r t h u Ăch vĂ hay trong
vi c t o nh ng ng d ng trong Flash. V y chĂșng ta hĂŁy cĂčng tĂŹm hi u cĂĄch nĂł lĂ m
vi c nhé!
HĂ m sin vĂ cosin s d ng qua Math.sin vĂ Math.cosin, bi u di n m i quan h gi a
Æ° ng th ng v i Æ° ng cong c a m t Æ° ng trĂČn.
HĂŹnh dÆ° i Ăąy bi u di n m t vĂČng trĂČn v i m t s i m Æ° c ĂĄnh d u b ng cĂĄc ch .
HĂŁy tÆ° ng tÆ° ng tĂąm c a vĂČng trĂČn to 0,0; bĂĄn kĂnh c a Æ° ng trĂČn b ng 1. VĂŹ
th , i m trĂȘn cĂčng s cĂł to 0,1 vĂ i m t n cĂčng bĂȘn ph i s cĂł to 1,0
BĂąy gi b n hĂŁy tÆ° ng tÆ° ng vĂČng trĂČn trĂȘn lĂ m t Æ° ng th ng. B t u t i m âaâ
48. cĂł to 1,0 n i m 0,-1 qua -1,0 r i qua 0,1 vĂ cu i cĂčng tr v 1,0.
Trong Flash, vĂ cĆ©ng nhÆ° trong cĂĄc ngĂŽn ng l p trĂŹnh khĂĄc, chĂșng ta nh v m t v t
b t kỳ b ng to x, y c a chĂșng. VĂŹ th , vi c chuy n m t i m trĂȘn Æ° ng th ng
thĂ nh m t i m cĂł to x, y trĂȘn Æ° ng trĂČn r t h u d ng. Ăł lĂ nh ng gĂŹ mĂ hĂ m
sin vĂ cosin th c hi n. VĂ d nhÆ° chĂșng ta t i m âaâ lĂ i m b t u c a Æ° ng
th ng c a Æ° ng trĂČn, b n cĂł s d ng hĂ m sin vĂ cosin c a 0 tĂnh to x, y c a
i m âaâ trĂȘn Æ° ng trĂČn. T t nhiĂȘn, Math.cos(0) s tr v giĂĄ tr 1, Math.sin(0) s tr
v giĂĄ tr 0. K t qu s tr v to c a i m âaâ 1,0
V y i m âcâ s n m Ăąu trĂȘn Æ° ng trĂČn? N u du i Æ° ng trĂČn ra s cĂł dĂ i
b ng 6.28 l n bĂĄn kĂnh, do bĂĄn kĂnh b ng 1 nĂȘn dĂ i s b ng 6.28. Ăąy lĂ xu t x
c a h ng s pi. Pi b ng 3.14, b ng m t n a dĂ i c a Æ° ng trĂČn.
dĂ i c a Æ° ng trĂČn lĂ 6.28 thĂŹ m t ph n tÆ° dĂ i Æ° ng trĂČn lĂ 1.57. i m Ăł
tÆ°ÆĄng ng v i i m âcâ. HĂ m Math.cos(1.57) s tr v m t giĂĄ tr r t nh , g n b ng 0.
HĂ m Math.sin(1.57) s tr v giĂĄ tr g n b ng -1. Ch g n b ng ch khĂŽng b ng vĂŹ
h ng s pi khĂŽng chĂnh xĂĄc b ng 3.14, ch lĂ g n b ng thĂŽi.
B n cĂł th s d ng cĂĄch nĂ y chuy n cĂĄc i m trĂȘn Æ° ng trĂČn thĂ nh i m cĂł to
x,y
V y thĂŹ nĂł cĂł Ăch nhÆ° th nĂ o? Gi s nhÆ° b n mu n t o m t movieclip bay quanh
mĂ n hĂŹnh trong m t vĂČng trĂČn. LĂ m sao lĂ m Æ° c i u Ăł? N u lĂ m b ng frame cĂł
th ph i t n hĂ ng trÄm frame . Ho c cĂĄch khĂĄc lĂ cĂł th dĂčng hĂ m Math.cos vĂ
Math.sin tĂnh chuy n sang to x,y quanh vĂČng trĂČn.
Trong o n code dÆ° i Ăąy, khi c ng thĂȘm n, movie clip s chuy n ng d c theo
Æ° ng trĂČn. HĂ m Math.cos s tĂnh ra giĂĄ tr x vĂ hĂ m Math.sin s tĂnh ra giĂĄ tr y,
chĂșng s Æ° c nhĂąn thĂȘm v i giĂĄ tr c a radius tÄng kĂch thÆ° c c a Æ° ng trĂČn.
GiĂĄ tr c a centerX vĂ centerY s Æ° c c ng thĂȘm cho cĂĄc to x, y, vĂŹ th tĂąm
Æ° ng trĂČn bĂąy gi khĂŽng cĂČn 0,0 n a mĂ s v trĂ 150,150
CODE
onClipEvent(load) {
n = 0;
radius = 100;
centerX = 150;
centerY = 150;
}
onClipEvent(enterFrame) {
n += .1;
this._x = Math.cos(n) * radius + centerX;
this._y = Math.sin(n) * radius + centerY;
}
Ch (string) vĂ s (number)
CĂł r t nhi u cĂĄch chuy n i t chu i sang s vĂ ngÆ° c l i. VĂ d nhÆ° trÆ° ng h p
ngÆ° i dĂčng nh p m t s vĂ o text field, b n s nh n giĂĄ tr Ăł vĂ c ng thĂȘm m t. HĂŁy
xem o n code sau Ăąy, num lĂ m t bi n giĂĄ tr text field
CODE
49. b = num + 1;
N u num = 42, v y thĂŹ b s lĂ 43, Ășng khĂŽng? Xin tr l i lĂ sai, k t qu b lĂ 421, ÆĄn
gi n b i vĂŹ num lĂ m t chu i (string) ch khĂŽng ph i lĂ m t s , vĂŹ th khi chĂșng ta
th c hi n phĂ©p c ng num v i 1 cĂł nghÄ©a lĂ c ng kĂœ t â1â vĂ o chu i num ang cĂł giĂĄ
tr â42â.
lĂ m cho Flash hi u num lĂ m t s , b n cĂł th s d ng m t trong hai hĂ m sau Ăąy
chuy n m t chu i thĂ nh s . HĂ m parseInt chuy n m t chu i thĂ nh ki u s nguyĂȘn,
hĂ m parseFloat chuy n m t chu i thĂ nh ki u s th c. VĂ d hĂ m parseInt(â42â) s tr
v giĂĄ tr lĂ 42, n u chĂșng ta s d ng parseInt(â42.9â) thĂŹ cĆ©ng s nh n Æ° c giĂĄ tr lĂ
42 b i vĂŹ hĂ m parseInt khĂŽng lĂ m trĂČn s , nĂł ch l y ph n nguyĂȘn mĂ thĂŽi. CĂČn n u
s d ng hĂ m parseFloat(â42.9â) b n s nh n Æ° c giĂĄ tr lĂ 42.9, mu n lĂ m trĂČn cĂĄc
b n cĂł th s d ng hĂ m Math.round(parseFloat(â42.9â)). HĂ m parseFloat cĆ©ng s tr
v m t m t s nguyĂȘn n u tham s truy n vĂ o lĂ m t chu i s nguyĂȘn. VĂ d
parseFloat(â42â) s cho ta s 42. Tr trÆ° ng h p b n mu n tr v m t giĂĄ tr s
nguyĂȘn, cĂČn khĂŽng b n nĂȘn s d ng hĂ m parseFloat.
M t nét r t c bi t và r t hay c a hà m parseInt là có th chuy n m t chu i thà nh m t
s nhÆ°ng thĂ nh nhi u d ng h s khĂĄc nhau. HĂŁy xem m t vĂ d cho d hi u:
CODE
parseInt(âFFâ, 16);
HĂ m nĂ y s tr v giĂĄ tr lĂ 255, Ăœ nghÄ©a c a nĂł lĂ chuy n chu i ch a s FF lĂ m t s
hexa h s 16 thĂ nh m t s h nguyĂȘn h s 10.
NgÆ° c l i, chuy n t m t s sang m t chu i, hĂŁy s d ng hĂ m toString. HĂ m nĂ y
s ho t ng khĂĄc v i hĂ m parse, b i vĂŹ nĂł ho t ng bĂȘn trong m i bi n, g i hĂ m
nà y sau d u ch m (.). Xem và d nhé:
CODE
a = 135;
trace(a.toString() + 1);
K t qu s lĂ 1351.
ChĂșng ta cĆ©ng cĂł th s d ng hĂ m toString chuy n m t s thĂ nh m t chu i ch a
s dÆ° i m t h s khĂĄc. VĂ d a.toString(16) s tr v k t qu lĂ chu i âffâ
S ng u nhiĂȘn
T o s ng u nhiĂȘn lĂ m t ph n quan tr ng trong cĂŽng vi c thi t k game vĂ m t s
ho t hĂŹnh. B i vĂŹ n u khĂŽng cĂł sĂŽ ng u nhiĂȘn thĂŹ nh ng o n phim c a b n s ch y
gi ng nhau, khĂŽng cĂČn gĂŹ thĂș v n a!
t o s ng u nhiĂȘn, b n cĂł th s d ng hĂ m Math.random(). HĂ m nĂ y s tr v m t
giĂĄ tr t 0.0 n 1.0 nhÆ°ng thÆ° ng thĂŹ khĂŽng tr v giĂĄ tr b ng 1.0
HĂŁy xem vĂ d dÆ° i Ăąy, b n s nh n Æ° c con s ng u nhiĂȘn trong c a s OutPut
CODE
50. trace(Math.random());
K t qu tr v i lo i gi ng nhÆ° 0.023268056102097, nhÆ°ng m i l n l i khĂĄc nhau.
M t vĂ d khĂĄc lĂ b n c n t o m t s ng u nhiĂȘn t 1 n 10, vi c nĂ y r t ÆĄn gi n,
ch c n nhĂąn thĂȘm s ng u nhiĂȘn cho 10. o n code sau s cho ta con s ng u nhiĂȘn
t 0.0 n 10.0
CODE
trace(Math.random() * 10);
NhÆ°ng cĂĄi chĂșng ta c n lĂ con s ng u nhiĂȘn t 1.0 n 10.0 ch khĂŽng ph i t 0.0
n 10.0, vĂŹ th , hĂŁy c ng thĂȘm 1
CODE
trace(Math.random() * 10 + 1);
BĂąy gi thĂŹ k t qu tr v lĂ 1.0 n 11.0 nhÆ°ng s khĂŽng cĂł k t qu 11.0. HĂŁy s
d ng hĂ m Math.floor lĂ m trĂČn xu ng.
CODE
trace(Math.floor(Math.random() * 10 + 1));
Th t ra thĂŹ con s ng u nhiĂȘn trong mĂĄy tĂnh cĆ©ng chÆ°a th t s ng u nhiĂȘn. B i vĂŹ nĂł
khĂŽng th t s thay i trong b vi x lĂœ. Thay vĂ o Ăł s cĂł m t con s chu n, m t
con s nĂ o Ăł khĂŽng bi t trÆ° c Æ° c nhÆ° lĂ gi ho c phĂșt⊠c a h th ng, con s nĂ y
s Æ° c Æ°a vĂ m t bi u th c r t ph c t p, r t r t ph c t p mĂ chĂșng ta khĂŽng th
oĂĄn Æ° c. K t qu tr v cho chĂșng ta k t qu dÆ° ng nhÆ° lĂ ng u nhiĂȘn. K t qu nĂ y
s Æ° c Æ°a vĂ m t hĂ m tĂnh m t l n n a lĂ lÆ°u l i thĂ nh con s chu n tĂnh ng u
nhiĂȘn cho l n ti p theo.
HĂŁy nghÄ© v i u nĂ y, s ng u nhiĂȘn trong i s ng th t s cĆ©ng khĂŽng th t s ng u
nhiĂȘn. N u chĂșng ta gi m t m t c a con xĂșc x c, th y Ășng theo m t hÆ° ng th t
chĂnh xĂĄc, chĂșng ta s cĂł cĂčng m t k t qu
Æ° c r i, bĂąy gi hĂŁy th t o m t s ng u nhiĂȘn t 3 n 7. LĂ m th nĂ o Ăąy? Ah, cĂł
m t th thu t cho b n Ăąy:
CODE
trace(Math.floor(Math.random() * 5 + 3);
Trong ph m vi t 3 n 7 s cĂł t t c lĂ 5 s nguyĂȘn 3, 4, 5, 6, vĂ 7. Th cĂČn trong
ph m vi t 50 n 100 thĂŹ sao
CODE
trace(Math.floor(Math.random() * 51 + 50);
51. LĂ s 51 b i vĂŹ trong ph m vi t 50 n 100 cĂł 51 s , cĂČn n u t 51 n 100 s lĂ
CODE
trace(Math.floor(Math.random() * 50 + 50);
M t cĂĄch th xem ph m vi c a b n cĂł Ășng nhÆ° Ăœ c a mĂŹnh khĂŽng, Ăł lĂ hĂŁy th
v i s nh nh t vĂ s l n nh t thay cho Math.random(). GiĂĄ tr nh nh t c a hĂ m
Math.random() là 0, hãy th v i s 0 nhé
CODE
trace(0 * 51 + 50);
GiĂĄ tr l n nh t c a Math.random() s khĂŽng chĂnh xĂĄc b ng 1.0 mĂ s lĂ g n b ng,
v y chĂșng ta hĂŁy th v i giĂĄ tr lĂ 0.9999
CODE
trace(.9999 * 51 + 50);
HĂŁy th xem cĂł Ășng khĂŽng nhĂ©!
DÆ° i Ăąy lĂ m t vĂ d n a r t thĂș v , movie clip c a b n s nh y n nh ng v trĂ b t
kỳ
CODE
onClipEvent(enterFrame) {
this._x = Math.random()*550;
this._y = Math.random()*400;
}
Luy n t p: T o m t chÆ°ÆĄng trĂŹnh mĂĄy tĂnh ÆĄn gi n
HĂŁy b t tay vĂ o vi c thi t k m t chÆ°ÆĄng trĂŹnh mĂĄy tĂnh ÆĄn gi n nhĂ©.
- M m t movie m i trong Flash. Movie c a chĂșng ta s gi ng nhÆ° hĂŹnh dÆ° i Ăąy
ChĂșng ta s cĂł 10 nĂșt nh p 10 s t 0 n 9, cĂĄc nĂșt cĂĄc phĂ©p toĂĄn, phĂm =, d u
ch m th p phĂąn, phĂm C xĂła mĂ n hĂŹnh. M t text field t trĂȘn hi n th nh ng
s ngÆ° i dĂčng b m, text field nĂ y s liĂȘn k t v i bi n display.
- Trong m i movie clip c a m i nĂșt b m, chĂšn o n code sau
CODE
on (release) {
_parent.keyPressed(this._name);
}
52. Khi m t nĂșt b t kỳ Æ° c nh n thĂŹ hĂ m keyPressed s Æ° c g i level ngoĂ i mĂ Ăąy
s lĂ level root. HĂ m nĂ y s truy n tĂȘn c a movie clip.
- Quay tr l i level root, m i movie clip ph i cĂł m t tĂȘn riĂȘng, khĂŽng Æ° c trĂčng. t
tĂȘn c a movie clip theo s c a nĂł, vĂ d nĂșt s 5 s cĂł tĂȘn lĂ 5, d u ch m th p phĂąn cĂł
tĂȘn lĂ â.â. D u c ng, d u tr , d u nhĂąn, d u chia, d u b ng, nĂșt C l n lÆ° t t tĂȘn lĂ
plus, minus, multiply, divide, equals, clear.
- Ok, bùy gi b t u vi t code nhé! Code nà y s n m ngoà i movie frame
CODE
// trÆ° c tiĂȘn, xoĂĄ mĂ n hĂŹnh cĆ©
clearAll();
function clearAll() {
display = "0"; // giĂĄ tr m c nh lĂ 0
memory = 0; // b nh
operation = "none"; // chÆ°a cĂł phĂ©p toĂĄn nĂ o c
newNum = true; // ĂĄnh d u khi nĂ o ĂŁ nh p xong m t s
}
Bi n display lĂ m t chu i (string), s liĂȘn k t v i text field hi n th n i dung ngÆ° i
dĂčng b m. NĂł s b t u v i giĂĄ tr b ng 0, cĂł nghÄ©a lĂ khi ngÆ° i dĂčng m i b t mĂĄy
lĂȘn thĂŹ s m c nh lĂ s 0
Bi n memory lÆ°u l i con s trÆ° c Ăł th c hi n phĂ©p tĂnh. i u nĂ y r t c n thi t, vĂ
d b n b m s 5, +, 7 thĂŹ s 5 nh p vĂ o, khi b n b m d u c ng, mĂ n hĂŹnh s Æ° c xĂła
vĂ s 5 Æ° c lÆ°u vĂ o memory, s 7 Æ° c nh p ti p vĂ s th c hi n phĂ©p tĂnh 5 vĂ 7.
PhĂ©p toĂĄn ngÆ° i dĂčng ch n cĆ©ng c n Æ° c lÆ°u vĂ o b nh . Khi ngÆ° i dĂčng ĂŁ nh n
5, +, 7 r i, sau Ăł b m d u = ho c m t phĂ©p toĂĄn khĂĄc thĂŹ chÆ°ÆĄng trĂŹnh s g i l i phĂ©p
toĂĄn cĆ© ĂŁ ÆĄc lÆ°u trong bi n operation th c hi n phĂ©p toĂĄn trÆ° c c a 5 v i 7.
Bi n newNum nhÆ° lĂ m t bi n c hi u bĂĄo cho chÆ°ÆĄng trĂŹnh bi t khi nĂ o s k t
thĂșc m t phĂ©p toĂĄn. VĂ d khi ngÆ° i dĂčng b m 5, +, 7 r i sau Ăł b m m t phĂ©p toĂĄn
khĂĄc thĂŹ k t qu s Æ° c lÆ°u l i tĂnh toĂĄn ti p, lĂșc nĂ y phĂ©p toĂĄn chÆ°a k t thĂșc,
newNum = false. CĂČn n u ngÆ° i dĂčng b m d u = thĂŹ mĂ n hĂŹnh s hi n ra k t qu vĂ
k t thĂșc luĂŽn phĂ©p toĂĄn chuy n sang phĂ©p toĂĄn m i, newNum = true.
- Ph n ti p theo lĂ hĂ m keyPressed x lĂœ khi m i nĂșt Æ° c nh n. HĂ m keyPressed
s s d ng c u trĂșc switch thay cho c u trĂșc if, then, else. C hai cĂĄch u ho t ng
tÆ°ÆĄng t nhÆ°ng cĂĄch vi t hÆĄi khĂĄc, b n hĂŁy xem nhĂ©:
CODE
// hĂ m nĂ y Æ° c g i b i nĂșt nh n
function keyPressed(keyName) {
// do something different for different keys
switch (keyName) {
case "clear" : // khi nh n nĂșt C
clearAll();
break;
case "plus" : // cåc phép toån c ng, tr , nhùn, chia
operate(keyName);
53. break;
case "minus" :
operate(keyName);
break;
case "multiply" :
operate(keyName);
break;
case "divide" :
operate(keyName);
break;
case "equals" :
operate(keyName);
break;
default : // cĂĄc s
if (newNum) { // hi n th s m i trĂȘn mĂ n hĂŹnh
display = keyName;
newNum = false;
if (display == "0") newNum = true; // s khĂŽng b t u v i s 0
} else {
display += keyName; // n i thĂȘm s vĂ o mĂ n hĂŹnh
}
break;
}
}
Khi ngÆ° i dĂčng nh n nĂșt C thĂŹ hĂ m clearAll() s Æ° c g i, tÆ°ÆĄng t khi ngÆ° i dĂčng
nh n cĂĄc phĂ©p toĂĄn thĂŹ hĂ m operate s ÆĄc g i
- HĂ m operate s th c hi n tĂnh toĂĄn. NĂł s tĂŹm ra phĂ©p toĂĄn gi a con s trÆ° c Ăł vĂ
con s hi n th i, s d ng hĂ m parseFloat chuy n chu i thĂ nh s .Operation cĂł giĂĄ
tr b ng none khi nh p m t s m i sau khi th c hi n xong phép toån và mà n hÏnh
Æ° c xĂła.
CODE
// th c hi n phĂ©p toĂĄn trÆ° c
function operate(keyName) {
switch (operation) {
case "none" : // s u tiĂȘn
memory = parseFloat(display); // lÆ°u l i s trÆ° c
break;
case "plus" : // th c hi n phép toån
memory += parseFloat(display);
break;
case "minus" :
memory -= parseFloat(display);
break;
case "multiply" :
memory *= parseFloat(display);