More Related Content Similar to 24 gio hoc flash Similar to 24 gio hoc flash (20) More from Há»c Huỳnh BĂĄ 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);