一、关于如何编写flash中的脚本& T+ K3 a( ]3 d. s% \
1 l$ k; i8 b6 \1 I2 L- I0 ~# C2 _( a: P: u0 p
5 B* I5 v" X: e6 b* d8 c% D
6 @$ N" o& ~( U6 u6 B. M" \/ x
( z- T! R0 ^* N+ d5 `- I 首先,要知道编写脚本,不需要用户对AS有完全的了解!
5 _, B' g: a( f) x$ s
( e1 b1 j; y0 l/ m' m8 h3 Z
w/ a: C% @3 B9 z
5 B8 a @; t7 _: U
4 I1 G0 ^& w1 |
/ p7 M; h2 ?: ~ 现在要考虑的问题是,如何在你的flash中添加编写脚本?简单的说,添加脚本可分为两种:一是把脚本编写在时间轴上面的关键桢上面(注意,必须是关键桢上才可以添加脚本)。二是把脚本编写在对象身上,比如把脚本直接写在MC(影片剪辑元件的实例)上、按钮上面。
: T- m& I0 u6 s9 i
1 s7 i( x: ~0 B8 ?$ s
& P2 ~5 ]2 y7 |, w6 Q
% q. C; t Y8 u
- {; e4 q( R/ m; J- F h8 _6 E5 q A* F7 k' Z
此外,大家也需要简单理解一下flash是如何执行你编写的脚本的。当你在时间周的关键桢上添加了脚本,那么当flash运行的时候,它会首先执行这个关键桢上的脚本,然后才会显示这个关键桢上的对象。
! m! H8 H' T& L( o9 A1 s3 w) J- w. B7 s. O" f: F& C
8 w* h, B* y' g$ u$ C
; ?: {5 }0 ?* i* w
% s+ T' e3 h4 A% V6 A
( Z9 Q ]& s2 ~5 _ 还有一些简单的知识,AS中的对象都包括什么呢?它可以包含数据,也可以是舞台上的电影剪辑,也可以是舞台上的按钮等。既然包含了那么多对象,那么每种对象肯定有各自的属性!比如电影剪辑(movieclip)对象,它的属性就有:_height(高度),_rotation(旋转),等,这些属性不需要你去特意的记忆,当使用的时候可以随时翻阅脚本字典。在以后的教程中会陆续给大家介绍一些基础脚本的使用技巧。
: ` w! v' D+ u; U) ^7 d2 ~; V
, n$ C, r8 t" q5 |
* `- u4 j3 @) N- d0 T, r4 k: S
6 r" ?2 z! z) t8 ]
4 e# Y% w5 w6 C! I
( L, M b7 b: j( A# [; y3 [7 c4 M 废话少说,开始这次教程的例子吧
. d: c, _4 ]4 m, s/ N% a/ n6 X, }3 X; @: J5 ~9 }. c6 R7 a
3 t& F2 [! q) {" W. m
+ s0 E+ D* u3 L& X5 S$ @/ d
9 t: D: \% H/ t, J8 [( @" b8 `
5 ~4 `7 Z/ j, O7 y2 t9 L1 x, y' B/ F3 p. N 二、本次教学需要学到的基本AS命令如下:& @8 N9 t! S9 G" J" L
. g% }5 C# u* h
5 V" U. X# Z' H0 f% P* X7 w, O- {
1 L& h! m+ ^6 }' E8 m! b
0 }( E9 Q2 ^! `. {0 m, H
V# |0 e2 I3 M& o: K% A* Y; W7 Q
stop()、play()、gotoandplay()、gotoandstop()、nextFrame()、prevFrame();、nextScene()、prevScene();、stopAllSounds(); 按钮的AS编写规则
; F/ Q, C; s" r1 L/ {# \; _/ Z3 O v) N; h7 }+ V, x
) _4 `; [- U2 q, N8 a
0 U8 p& E {/ U( q8 H
$ R a; x/ }" o1 s
% m& e* `6 D4 t+ T 三、实例制作' O$ k' M0 i5 _
. k& G1 G# M! N* m+ ]3 C' o( p! B6 Z7 X' N9 t
2 [# p6 L, q- R2 L
2 a9 O: d2 y7 t4 T- ?2 k9 b2 t9 s
为了能更清楚的认识这些简单的命令,咱们就从一个最简单的例子开始!
3 H+ f' @4 f. A5 }8 P
9 Q4 m1 A4 ~! s
6 E# q! K m% l/ S4 g H6 x5 C
% f# w$ R. x, R1 k. p
Y, W+ V' x4 k3 P8 W# x, W; X; g* M, J! C
首先看一下例子,简单的控制影片的播放、暂停、前进、后退、停止
# o% r5 w7 [0 A" p4 C1 [. C d
% F* z" e' d/ I* ]# H: H# k* D, y& \# }$ l. |9 }
3 ^0 r; i( T2 O! x5 m
S' p# o2 w* {; S% j" }" W% O' V3 Y3 D3 a) _
1、 打开flash,按ctrl F8,新建立一个影片剪辑,并起名字为mo。需要先做一个简单的移动动画的影片剪辑。就做一个圆形的滚动效果吧。
$ [9 E0 N4 _* N+ }/ F: Q( c* M+ |. o: S1 }, m0 O" x
, T3 Q4 K$ n) T0 V) n % r1 v0 r0 e* n9 u, z- ]4 Y
/ m* E# j7 v8 t* l 图01
* v; V# x, |8 }- N* J/ I! p5 R* P
' f6 J( z: T0 ~" |7 v
- W1 T2 z" N& K. u
2、 回到舞台工作区,按F11打开库,将mo影片剪辑拖放到舞台中。并给这个实例起个名字叫mc。(现在就可以按ctrl 回车测试效果,你可以看到这个圆形一直在不停的移动。)
! ^( i: C/ Q8 w. n
/ j/ K6 V9 b* e9 j# a
) ], g7 `: U* \! R
3、 添加脚本,现在要让这个mc在影片一开始不要自动播放,不然怎么来控制它呢。咱们把脚本写在时间轴的关键桢上。选中时间轴的第一桢,按F9打开动作面板,选择
专家模式,输入:_root.mc.stop(); (_root代表舞台,这个脚本的意思就是,舞台上名字叫mc的实例停止播放。)
1 G3 c; o6 X, k* E2 O9 k% Z- ?6 K0 _0 [
2 e: B7 i9 E8 F8 m3 S* ^
- z& u$ a0 Y0 O ~5 w5 y4 q
) N; |. w5 N( B2 g* \ 图02
1 O3 M/ y b' ?$ D$ z
$ E* u7 G: k( ^7 }) K+ r; V! u T
! ^* X) Y4 H; P 4、 现在咱们来制作几个按钮,分别表示播放、暂停、前进、后退、停止。并摆放在舞台上。关于按钮的制作方法我就不多介绍。
2 _, Y; ]/ l* G
" _6 g) }' m: N$ l
- r1 Q/ U- [3 T7 Q7 m i5 |$ b# F0 d3 @, [, _# `
# G2 d- j* R$ }2 F; ?6 n* `
) s' A1 J. c9 H. I( Q% _- h7 [
5、 现在要添加控制影片的脚本。这次把脚本直接写在舞台上这些按钮的身上。选中播放按钮,打开动作面板,输入:
! V$ B, M0 }1 q7 w$ [
/ r) G1 F) G- S9 V9 i, O: g; C9 N# m" n
3 ] `; t3 x' A: b+ i2 v' b
) Y8 |; \: r. z$ @0 z, I% b6 a
* L W2 c7 x% P+ Q7 p5 C9 Mon (release) {
; |* C/ H0 d/ x5 m
- z3 v+ \1 z- n! B. t
5 R1 S2 \) K9 @7 |& v
_root.mc.play();
6 R# W- m3 P/ |: y% v; Q
2 S. f1 m0 X, x/ v; X9 v! A! B6 C
1 T( |+ {# R8 G}
% t! U7 f) j- q( G8 {4 H) p/ _: |9 A
' [# G. R+ j/ Q& V6 k# \
$ U5 X# n/ X( g
. x" Y5 Q. ^8 v9 q% ~
# B, l: Z) r! r% Q
如果要在按钮身上写脚本的话,必须使用on(事件){//脚本程序}的格式来写!上面的脚本作用就是:当你在这个按钮上按一下鼠标(release事件)的时候,就会执行下面的_root.mc.play();程序,它的意思是让舞台上的mc开始播放!
! `6 u% C8 a2 ~0 n
7 _4 T( ~/ U, F
( g3 l; n9 z% K1 D* I" G4 Y+ m/ X
& j1 ~! v$ u! U# N" J" t
# V, W$ B/ `' \. ` l3 |% X
) |, c) J' t a; c2 v& X$ C 6、同理:咱们选中舞台上的暂停按钮,在它上面输入:
$ z: G+ ?1 Q* S9 k' R
q, `! j8 ` l8 \# m) n: p! o5 _! `* c z: W% k& x
on (release) {
4 G( d: s" D2 G6 O. u
. Z' R6 l0 T) A3 P+ k- C; L( Q, l7 U4 S( I* ~2 \- H) a, |
_root.mc.stop()
1 d% a0 f& a9 X8 ~$ P
' H% T! P8 v6 q1 }/ }" v, X
, ~5 Z' S2 R$ N8 C- @- v& D}
, D$ ], C: s% J8 h/ Z6 ~
' O8 {5 q# a5 i' H, H& X
% [ t, o. o4 G5 i4 O+ c" ]2 N" y
2 v, }; Y: w, q4 P5 b- c# _& w/ \2 C' z2 @" m
/ m% }7 [( q! ]' [
然后依次在快退上输入:
) M& {6 l9 Z: W5 G
0 o$ [+ S2 D0 X* e6 L( f' t2 `, w
( y* D0 `. d4 Kon (release) {
" H2 l5 N# [8 t, g9 Y+ W/ o# J. }5 o
1 t E! |, ^! n% O. b+ _
_root.mc.prevFrame(); //prevFrame表示回到动画的上一桢
' G' n7 D+ u; m. o) K6 f/ f d1 y
]# K# @6 s/ w% s2 y
}
* ]# @6 K7 l1 s* O e; `
: N; N' O/ \0 E7 [9 e! o9 t4 E6 I( s8 Z+ V
! B/ W" Y2 A' f- k6 C7 J' D
# h1 u ?( t: i& w& P1 n# s9 A' w2 n3 x6 |( H
在快进的按钮上输入:
- J0 q/ b& _" r& W8 O
5 |( X& ]' |; }7 L; k$ C% b
h4 d! s. v8 v! c2 \2 e
on (release) {
6 [9 M% B$ [$ X. \/ @2 R
1 r8 Y! F& S. K" p; ^* r4 C5 _6 [
_root.mc.nextFrame();
e1 h6 |+ M4 n- I& C
: f' O3 Y4 f4 t( M- Q8 o; V
|( U' ]- Y% C0 j/ k9 Y8 o% P- r}
! ~/ s5 m, e9 Z6 A, l
3 |% i( J6 s/ f9 [" F1 {
i6 ^6 B; m# I. X 在停止的按钮上输入:
% I+ D& u4 L8 {
2 t# ]7 j! d; F; t* y! V8 o5 F% d1 @) H
on (release) {
" R/ N5 z# @7 V7 }8 O+ U. r0 j* o% T" {* t
+ H4 K, M, |8 a: |! e, C i! f' Z% [4 w_root.mc.gotoAndStop(1); //跳到mc影片的第一桢,并停止播放!
9 ?) }- P% \2 D+ K( F$ A E4 H. k0 p8 K3 `' U# t, Y
3 {+ Z9 q7 \1 V2 m' f9 P! b
}
- ^/ F' Y% U3 @' Q& V5 r
: [0 z6 O0 T6 p' j2 }! U
% X( n6 c0 ^5 Y1 r9 ?3 V0 j8 P/ T7 A* j3 g7 z& I& H
7 N2 v( I% g- g& n
: ~- q; ], p1 F0 F8 w! p$ Q+ n' a 好了,到现在为止就结束啦,你可以按ctrl 回车测试一下你的成果咯。