ession1 中的變量、數(shù)組元素或?qū)傩浴?/p>
示例
下面的示例使用賦值運算符將數(shù)字?jǐn)?shù)據(jù)類型賦予變量 x。
x = 21;
下面的示例使用賦值運算符將字符串?dāng)?shù)據(jù)類型賦予變量 x。
x = "hello";
2 "+="運算
格式 ;expression1+=expression2
參數(shù);expression1、expression2 數(shù)字或字符串。
說明
運算符(算術(shù)組合賦值);將 expression1 + expression2 值賦予 expression1。例如,下面兩個語句的結(jié)果是相同的:
x += y;
x = x + y;
此運算符也可以執(zhí)行字符串連接運算。加法運算符 (+) 的所有規(guī)則適用于加法賦值 (+=) 運算符。
示例
(1)
x = 5;
y = 10;
x += y;
trace(x);
(2)
x = "My name is "
x += "Gilbert"
trace (x)//My name is Gilbert
3 "-="運算
格式;expression1、expression2 數(shù)字或計算結(jié)果為數(shù)字的表達(dá)式
說明
運算符(算術(shù)組合賦值);將 expression1 -expression2 的值賦予 expression1。例如,下面兩個語句是相同的:
x -= y;
x = x - y;
字符串表達(dá)式必須轉(zhuǎn)換為數(shù)字,否則返回 NaN。
示例
(1)
x = 5;
y = 10;
x -= y
trace(x);//-5
(2)
x = "5";
y = "10";
x -= y;
trace(x);//-5
(3)
x = "a5";
y = "10";
x -= y;
trace(x);//NaN
4 *=運算
格式;expression1 *=expression2
說明
運算符(算術(shù)組合賦值);將 expression1 *expression2 的值賦予 expression1。例如,下面兩個表達(dá)式是相同的:
x *= y
x = x * y
示例
(1)
x = 5;
y = 10;
trace (x *= y);//50
(2)
i = 5;
x = 4 - 6;
y = i + 2;
trace(x *= y);//-14
5 "/="運算
expression1/=expression2
參數(shù);expression1、expression2 數(shù)字或計算結(jié)果為數(shù)字的變量。
說明
運算符(算術(shù)組合賦值);將 expression1/expression2 的值賦予 expression1。例如,下面兩個語句是相同的:
x /= y
x = x / y
示例
x = 10;
y = 2;
x /= y;
6 "%="運算
格式;expression1%=expression2
說明
運算符(算術(shù)復(fù)合賦值);將 expression1% expression2 的值賦予 expression1。例如,下面兩個表達(dá)式是相同的:
x %= y
x = x % y
示例
x = 14;
y = 5;
trace(x %= y);//4
二 影片剪輯的屬性
每個影片剪輯在建立時都繼承影片剪輯類的所有屬性,我們可以在程序中調(diào)用和設(shè)置這些屬性,如果不設(shè)置這些屬性系統(tǒng)會默認(rèn)設(shè)置這些屬性.研究mc的屬性應(yīng)該首先熟悉設(shè)置屬性和調(diào)用屬性的兩個命令
1 setProperty(位于;動作--影片剪輯控制)
setProperty("target",property,value/expression)
參數(shù)
target 到要設(shè)置其屬性的影片剪輯實例名稱的路徑。
property 要設(shè)置的屬性。
value 屬性的新文本值。
expression 計算結(jié)果為屬性新值的公式。
說明
動作;當(dāng)影片播放時,更改影片剪輯的屬性值。
示例
當(dāng)單擊按鈕時,此語句將名為 star 的影片剪輯的 _alpha 屬性設(shè)置為 30%:
on(release) {
setProperty("star", _alpha, "30");
}
2 getProperty(位于;函數(shù))
getProperty(instancename , property)
參數(shù)
instancename 要獲取其屬性的影片剪輯的實例名稱。
property 影片剪輯的屬性。
說明
函數(shù);返回影片剪輯 instancename 的指定 property 的值。
示例
下面的示例獲取影片剪輯 mc1 的水平軸坐標(biāo) (_x),并將其分配給變量mymc1x:
mymc1x = getProperty(_root.myMovie, _x);
本講重點掌握
(1)賦值運算符" += "
(2)賦值運算符" -= "
(3)mc屬性設(shè)置命令setProperty
(4)mc屬性調(diào)用命令getProperty
第六講按鈕控制復(fù)習(xí)
第七講比較運算符與mc屬性
一 比較運算符
1 "<"小于比較(lt)
格式;expression1 < expression2
參數(shù);expression1、expression2 數(shù)字或字符串。
說明
運算符(比較);比較兩個表達(dá)式以確定 expression1 是否小于 expression2;如果是,則該運算符返回 true。如果 expression1 大于或等于 expression2,則該運算符返回 false。使用字母順序計算字符串表達(dá)式;所有的大寫字母排在小寫字母的前面。
示例
下面的示例舉例說明數(shù)數(shù)值比較和字符串比較所返回的 true 和 false。
3 < 10;// true
10 < 3;// false
"Allen" < "Jack";// true
"Jack" < "Allen";// false
"11" < "3";//true
"11" < 3;// false
"C" < "abc";// false
cc="A" < "a";
trace(cc);//true
1 "<"小于比較(lt) 2 "<="小于等于(le) 3 ">"大于比較(gt) 4 ">="大于等于(ge)
5 "=="相等(eg) 6 "!="不相等(<>) 7 "==="嚴(yán)格相等 8 "!==="不嚴(yán)格相等
二 影片剪輯屬性2
1 透明度 _alpha
格式
myMovieClip._alpha
說明
屬性;設(shè)置或獲取由 MovieClip 指定的影片剪輯的 Alpha 透明度 (value)。有效值為 0(完全透明)到 100(完全不透明)。如果影片剪輯的 _alpha 設(shè)置為 0,雖然其中的對象不可見,但也是活動的。例如,依然可以點擊一個 _alpha 屬性設(shè)置為 0 的影片剪輯中的按鈕。
示例
下面的語句在點擊按鈕時,將名為 star 的影片剪輯的 _alpha 屬性設(shè)置為 30%:
on(release) {
star._alpha = 30;
}
2 旋轉(zhuǎn)_rotation
格式
myMovieClip._rotation
說明
屬性;以度為單位指定影片剪輯的旋轉(zhuǎn)。
3 可見性_visible
格式
myMovieClip._visible
說明
屬性;一個布爾值,指示由 MovieClip 參數(shù)指定的影片是否可見。不可見的影片剪輯(_visible 屬性設(shè)置為 false)處于禁用狀態(tài)。例如,不能點擊 _visible 屬性設(shè)置為 false 的影片剪輯中的按鈕。
第8講 邏輯運算與mc屬性
一 邏輯運算
1 邏輯非"!"(not)
格式
!expression
說明
運算符(邏輯);對變量或表達(dá)式的布爾值取反。如果 expression 是絕對值或轉(zhuǎn)換值為 true
的變量,則 !expression 的值為 false。如果表達(dá)式 x && y 的計算結(jié)果為 false,則表達(dá)式
!(x && y) 的計算結(jié)果為 true。
下面的表達(dá)式說明使用 ! 運算符的結(jié)果:
!true 返回 false
!false 返回 true
2 邏輯與"&&"(snd)
格式
expression1 && expression2
說明
對一個或兩個表達(dá)式的值執(zhí)行布爾運算。計算 expression1(該運算符左側(cè)的表達(dá)式),當(dāng)
此表達(dá)式的計算結(jié)果為 false 時返回 false。如果 expression1 的計算結(jié)果為 true,則計算
expression2(該運算符右側(cè)的表達(dá)式)。如果 expression2 的計算結(jié)果為 true,則最終結(jié)果
為 true;否則,為 false。
3 邏輯或"||"(or)
格式
expression1 || expression2
參數(shù)
expression1、expression2 布爾值或轉(zhuǎn)換為布爾值的表達(dá)式。
說明
運算符(邏輯);計算 expression1 和 expression2。如果其中任何一個或者兩個表達(dá)式的計
算結(jié)果為 true,則結(jié)果為 true;只有當(dāng)兩個表達(dá)式的計算結(jié)果都為 false 時,結(jié)果才為
false。邏輯 OR 運算符可用于任意多個操作數(shù);只要任意一個操作數(shù)的計算結(jié)果為 true,則
結(jié)果為 true。
對于非布爾表達(dá)式,邏輯 OR 運算符使得 Flash 對左側(cè)的表達(dá)式進(jìn)行計算;如果左側(cè)的表達(dá)式
可以轉(zhuǎn)換為 true,則結(jié)果為 true。否則,計算右側(cè)的表達(dá)式,而且結(jié)果就是該表達(dá)式的值。
二 影片剪輯屬性3
1 影片剪輯寬度 _width
格式
myMovieClip._width
說明
以像素為單位設(shè)置和獲取影片剪輯的寬度。
2 影片剪輯高度 _height
格式
myMovieClip._height
說明
以像素為單位設(shè)置和獲取影片剪輯的高度。
3 _x縮放系數(shù) _xscale
格式
myMovieClip._xscale
4 _y縮放系數(shù)
格式
myMovieClip._yscale
說明
xscale和_yscale的值代表了相對于庫中原影片剪輯的橫向尺寸width和縱向尺寸height的百分
比,100為影片剪輯在編輯時的大小,大于100時起放大作用,在0-100之間時起縮小作用,小于0時發(fā)生翻轉(zhuǎn).
第9講 影片剪輯事件與拖動
一 OnclipEvet
前面我們主要練習(xí)了把命令寫在時間軸的關(guān)鍵幀上和按鈕上,其實我們還可以把命令寫在影片剪輯上,我們知道命令寫在按鈕上的時候,必需首先寫on事件例如;on(press){...}或者on(release){...}等等,用來表示鼠標(biāo)在按鈕上發(fā)生的動作,同樣的道理當(dāng)我們把命令寫在影片剪輯上的時候必需首先寫OnclipEvet.
事件處理函數(shù)OnclipEvet與on命令十分類似,不同的是on事件設(shè)置的是鼠標(biāo)或鍵盤事件,而OnclipEvet命令設(shè)置的是影片剪輯事件,它只能附加在影片剪輯上面,不能寫在幀或按鈕元件上.OnclipEvet的事件有九重,他們是
(1) load 當(dāng)movieclip被下載到當(dāng)前場景的時間軸上時觸發(fā)load事件.
(2) unload 事件在當(dāng)前場景的時間軸上,當(dāng)movieclip被卸載時觸發(fā)unload事件,在卸載后第一幀執(zhí)行OnclipEvet命令設(shè)定的操作
(3) enterFrame 以影片幀頻不斷地觸發(fā)此動作。
(4) mouseMove 每次移動鼠標(biāo)時啟動此動作。_xmouse 和 _ymouse 屬性用于確定當(dāng)前鼠標(biāo)位置。
(5) mouseDown 當(dāng)按下鼠標(biāo)左鍵時啟動此動作。
(6) mouseUp 當(dāng)釋放鼠標(biāo)左鍵時啟動此動作。
(7) keyDown 當(dāng)按下某個鍵時啟動此動作。使用 Key.getCode(); 方法獲取最近按下的鍵的有關(guān)信息。
(8) keyUp 當(dāng)釋放某個鍵時啟動此動作。使用 Key.getCode() 方法獲取最近按下的鍵的有關(guān)信息。
(9) data 當(dāng)在 loadVariables 或 loadMovie 動作中接收數(shù)據(jù)時啟動此動作。當(dāng)與 loadVariables 動作一起指定時,data 事件只發(fā)生一次,即加載最后一個變量時。當(dāng)與 loadMovie 動作一起指定時,獲取數(shù)據(jù)的每一部分時,data 事件都重復(fù)發(fā)生。
二拖動命令
1 startDrag
格式
startDrag(target,[lock ,left ,top ,right,bottom])
參數(shù)
target 要拖動的影片剪輯的目標(biāo)路徑。
lock 一個布爾值,指定可拖動影片剪輯是鎖定到鼠標(biāo)位置中央 (true),還是鎖定到用戶首次點擊該影片剪輯的位置上 (false)。此參數(shù)是可選的。
left、top、right、bottom 相對于影片剪輯父級坐標(biāo)的值,這些坐標(biāo)指定該影片剪輯的約束矩形。這些參數(shù)是可選的。返回?zé)o。
說明動作;使 target 影片剪輯在影片播放過程中可拖動。一次只能拖動一個影片剪輯。執(zhí)行 startDrag 動作后,影片剪輯將保持可拖動狀態(tài),直到被 stopDrag 動作明確停止為止,或者直到為其他影片剪輯調(diào)用了 startDrag 動作為止。
示例1
若要拖動放在任何位置的影片剪輯,可將 startDrag 和 stopDrag 動作附加到該影片剪輯內(nèi)的某個按鈕上。
on(press) {
startDrag(this,true);
}
on(release) {
stopDrag();
}
第10講 鼠標(biāo)
一 捕獲鼠標(biāo)的坐標(biāo)
我們可以用兩種方法捕獲鼠標(biāo)的坐標(biāo),其一是用影片剪輯的_xmouse和_ymouse屬性,是最常用的方法,其二是對影片剪輯設(shè)置跟隨,獲取該影片剪輯的坐標(biāo)用來替代鼠標(biāo)的坐標(biāo).獲取鼠標(biāo)坐標(biāo)的腳本可以寫在時間軸上也可以寫在影片剪輯上,下面我們使用影片剪輯的enterFrame()和mouseMove事件來做實驗
1 影片剪輯的mouseMove事件
onClipEvent (mouseMove) {
_root.my_xmouse = _xmouse;
_root.my_ymouse = _ymouse;
}
2 影片剪輯的enterFrame事件
onClipEvent (enterFrame) {
_root.a=_root._xmouse;
_root.b=_root._ymouse;
}
3 設(shè)置跟隨測試mc坐標(biāo)替代鼠標(biāo)坐標(biāo)
onClipEvent (enterFrame) {
startDrag(_root.mc, true);
_root.a=getProperty(_root.mc,_x);
_root.b=getProperty(_root.mc,_y);
}
二 鼠標(biāo)隱藏與替換
1 隱藏命令hide與顯示命令 show
格式
Mouse.hide()
說明
方法;隱藏影片中的光標(biāo)。默認(rèn)情況下,光標(biāo)可見。使用Mouse.show()可以把隱藏的鼠標(biāo)顯示出來.
示例
下列附加到主時間軸上的影片剪輯上的代碼會隱藏標(biāo)準(zhǔn)光標(biāo),并將 mc 影片剪輯實例的 x 和 y 位置設(shè)置為主時間軸中的 x 和 y 鼠標(biāo)位置。這種方法可以省去設(shè)置鼠標(biāo)拖動命令的替換
onClipEvent(enterFrame){
Mouse.hide();
_root.mc._x = _root._xmouse;
_root.mc._y = _root._ymouse;
}
第十一講復(fù)制與mc的顏色設(shè)置
一 復(fù)制duplicateMovieClip
1 duplicateMovieClip
格式
duplicateMovieClip(target, newname,depth)
參數(shù) target 要復(fù)制的影片剪輯的目標(biāo)路徑。
newname 復(fù)制的影片剪輯的唯一標(biāo)識符。
depth 復(fù)制的影片剪輯的唯一深度級別。深度級別是復(fù)制的影片剪輯的堆疊順序。這種堆疊順序很像時間軸中圖層的堆疊順序;較低深度級別的影片剪輯隱藏在較高堆疊順序的剪輯之下。必須為每個復(fù)制的影片剪輯分配一個唯一的深度級別,以防止它替換現(xiàn)有深度上的影片。
說明
動作;當(dāng)影片正在播放時,創(chuàng)建一個影片剪輯的實例。無論播放頭在原始影片剪輯(或“父級”)中處于什么位置,復(fù)制的影片剪輯的播放頭始終從第一幀開始。父影片剪輯中的變量不拷貝到復(fù)制的影片剪輯中。如果刪除父影片剪輯,則復(fù)制的影片剪輯也被刪除。使用 removeMovieClip 動作或方法可以刪除由 duplicateMovieClip 創(chuàng)建的影片剪輯實例。
示例1;當(dāng)用按鈕設(shè)置變量kk為1時,復(fù)制15次mc, 源文件見"命令寫在幀上復(fù)制"
i++;
if(_root.kk==1){
duplicateMovieClip(_root.mc,"mc"+i,i);
mx=getProperty("mc"+i,_x);
my=getProperty("mc"+i,_y);
setProperty("mc"+i,_x,mx+i*35);
setProperty("mc"+i,_y,my);
set("mc"+i+".a",i);
}
if(i>=15){
i=0;
}
示例2 源文件見"命令寫在按鈕上復(fù)制"
按鈕1
on (release) {
i++;
if(i>10){
i=0;
}
k = 0;
duplicateMovieClip(mc, "mc"+i, i);
mx = getProperty("mc"+i, _x);
my = getProperty("mc"+i, _y);
setProperty("mc"+i, _x, mx+i*50);
setProperty("mc"+i, _y, my);
set("mc"+i+".a", i);
}
按鈕2
on (release) {
k++;
if(k>10){
k=0;
}
i = 0;
duplicateMovieClip(mc, "mc"+k, k);
mx = getProperty("mc"+k, _x);
my = getProperty("mc"+k, _y);
setProperty("mc"+k, _x, mx+k*50);
setProperty("mc"+k, _y, my+k*50);
set("mc"+k+".a", k);
}
按鈕3
on (release) {
j++;
removeMovieClip("mc"+j);
if(j>10){
j=0;
}
}
二 color對象
使用color(顏色)對象可以自由設(shè)置影片剪輯的顏色屬性,在flash中顏色的值使用紅綠蘭三原色的值組合起來表示,格式為0xrrggbb其中rrggbb表示紅綠蘭,分別用十六進(jìn)制數(shù)表示,取值范圍為0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f.
例如
黑色0x000000
白色0xffffff
紅色0xff0000
綠色0x00ff00
藍(lán)色0x0000ff
黃色0xffff00
1 構(gòu)造color對象
格式
new Color(target)
參數(shù) target 影片剪輯的實例名稱。
說明
構(gòu)造函數(shù);為由 target 參數(shù)指定的影片剪輯創(chuàng)建 Color 對象的實例。然后可使用該 Color 對象的方法來更改整個目標(biāo)影片剪輯的顏色。
2用setRGB設(shè)置顏色對象
myColor.setRGB(0xRRGGBB)
參數(shù) 0xRRGGBB 要設(shè)置的十六進(jìn)制或 RGB 顏色。對于 RR、GG 和 BB,每種代碼由兩個十六進(jìn)制數(shù)字組成,這些數(shù)字指定每種顏色成分的偏移量。0x 告知動作腳本編譯器該數(shù)字是十六進(jìn)制數(shù)值。
說明
方法;指定 Color 對象實例的 RGB 顏色。
示例1
下面的示例為影片剪輯 mc 創(chuàng)建一個名為 myColor 的 Color 對象實例,并設(shè)置其 RGB 值:
myColor = new Color(mc);
myColor.setRGB(0xff9933);
示例2 源文件見"2顏色設(shè)置"
幀1
foo = 0;
幀2
foo++;
_root.mc.play();
duplicateMovieClip("_root.flower", "mc" + foo, foo);
setProperty("mc" + foo, _x, random(350));
setProperty("mc" + foo, _y, random(300));
setProperty("mc" + foo, _alpha, random(275));
setProperty("mc" + foo, _xscale, random(200));
setProperty("mc" + foo, _yscale, random(200));
col = random(0xafafaf+0x999999);
mycolor = new Color("mc"+foo);
mycolor.setRGB(col);
幀3
if(foo<100){
gotoAndPlay(2);
} else {
gotoAndPlay(1);
}
3 用setTransform進(jìn)行顏色設(shè)置
格式
myColor.setTransform(colorTransformObject);
參數(shù)
colorTransformObject 使用 new Object 構(gòu)造函數(shù)創(chuàng)建的對象。此 Object 對象實例必須具有下列指定顏色轉(zhuǎn)換值的屬性:ra、rb、ga、gb、ba、bb、aa、ab。這些屬性在下面進(jìn)行了解釋。
說明
方法;設(shè)置 Color 對象實例的顏色轉(zhuǎn)換信息。colorTransformObject 參數(shù)是通過 new Object 構(gòu)造函數(shù)創(chuàng)建的通用對象。它具有指定顏色的紅、綠、藍(lán)和 alpha(透明度)成分百分比和偏移量數(shù)值的參數(shù),下面是設(shè)置舉例
顏色轉(zhuǎn)換對象的參數(shù)與“高級效果”對話框中的設(shè)置相對應(yīng),定義如下:
- ra 是紅色成分的百分比(-100 到 100)。
- rb 是紅色成分的偏移量(-255 到 255)。
- ga 是綠色成分的百分比(-100 到 100)。
- gb 是綠色成分的偏移量(-255 到 255)。
- ba 是藍(lán)色成分的百分比(-100 到 100)。
- bb 是藍(lán)色成分的偏移量(-255 到 255)。
- aa 是 alpha 的百分比(-100 到 100)。
- ab 是 alpha 的偏移量(-255 到 255)。
可以按如下形式創(chuàng)建 colorTransformObject 參數(shù):
myColorTransform = new Object();
myColorTransform.ra = 50;
myColorTransform.rb = 244;
myColorTransform.ga = 40;
myColorTransform.gb = 112;
myColorTransform.ba = 12;
myColorTransform.bb = 90;
myColorTransform.aa = 40;
myColorTransform.ab = 70;
也可使用以下語法來創(chuàng)建 colorTransformObject 參數(shù):
myColorTransform = { ra: ‘50’, rb: ‘244’, ga: ‘40’, gb: ‘112’, ba: ‘12’, bb: ‘90’, aa: ‘40’, ab: ‘70’}
示例 源文件見"3顏色設(shè)置"
i=i+5;
duplicateMovieClip(mc,"mc"+i,i);
fmc=getProperty("mc"+i,_rotation)
setProperty("mc"+i,_rotation,fmc+i);
mycolor=new Color(mc);
myobj=new Object();
myobj.ra=random(100);
myobj.rb=random(255);
myobj.ga=random(100);
myobj.gb=random(255);
myobj.ba=random(100);
myobj.bb=random(255);
myobj.aa=random(100)-random(50);
myobj.ab=random(255)-random(80);
mycolor.setTransform(myobj);
第12講 影片剪輯深度
一 影片剪輯深度
每個影片剪輯都具有自身的 z 順序空間,z 順序空間確定各對象在其父級 SWF 文件或影片剪輯中的重疊方式。每個影片剪輯都有一個關(guān)聯(lián)的深度值,該值用來確定它是顯示在同一個影片剪輯時間軸中其它影片剪輯的前面還是后面。當(dāng)使用 MovieClip.attachMovie()、
MovieClip.duplicateMovieClip() 或 MovieClip.createEmptyMovieClip() 創(chuàng)建影片剪輯時,總是要以方法參數(shù)的形式為新剪輯指定一個深度。影片剪輯的深度值的范圍是從 -16384 到 1048575。
格式
MovieClip.swapDepths()
用法
my_mc.swapDepths(depth)
my_mc.swapDepths(target)
參數(shù)
depth 一個數(shù)字,指定 my_mc 將被放置的深度級別。
target 一個字符串,指定其深度將被 my_mc 指定的實例交換的影片剪輯實例。兩個實例必須具有相同的父級影片剪輯。
說明
方法;用由 target 參數(shù)指定的影片剪輯或者當(dāng)前占據(jù)著 depth 參數(shù)中指定的深度級別的影片剪輯交換指定實例 (my_mc) 的堆疊,即 z 順序(深度級別)。兩個影片剪輯必須具有相同的父級影片剪輯。交換影片剪輯的深度級別的作用是將一個影片剪輯移到另一個影片剪輯的前面或后面。如果調(diào)用該方法時影片剪輯正在補間,則補間會停止。
示例1,以下代碼將復(fù)制出一系列新影片剪輯,每個影片剪輯的深度都不相同
duplicateMovieClip(mc, "mc"+i, i);
示例2 以下代碼將兩個新影片剪輯附加到 my_mc。第一個剪輯(名為 mc_1)將顯示在 mc_2 的后面,這是因為向第一個剪輯分配了一個較小的深度值。
container_mc.attachMovie("symbolID", "clip_1", 10);
container_mc.attachMovie("symbolID", "clip_2", 15);
示例3 當(dāng)按鈕點擊后mc的深度將會被從新設(shè)置
on (release) {
_root.mc1.swapDepths(30);
_root.mc2.swapDepths(20);
_root.mc3.swapDepths(10);
}
第13講 循環(huán)結(jié)構(gòu)控制
一 while與do_while循環(huán)
while與do_while結(jié)構(gòu)都可以按照一定的條件循環(huán)執(zhí)行循環(huán)體,wihle結(jié)構(gòu)先判定循環(huán)條件,當(dāng)條件符合時就執(zhí)行循環(huán)體,按順序執(zhí)行完循環(huán)體中的語句后,在返回wihle語句開始處,重新判定條件,并以此規(guī)則進(jìn)行循環(huán)操作,直到循環(huán)條件為false時終止循環(huán),轉(zhuǎn)而執(zhí)行wihle結(jié)構(gòu)下面的命令,與wihle結(jié)構(gòu)不同的是do_while循環(huán)結(jié)構(gòu)先執(zhí)行循環(huán)體中的語句,然后判定循環(huán)條件.這就是說do_while循環(huán)結(jié)構(gòu)無論條件是否符合,循環(huán)至少執(zhí)行一次.
1 while
格式
while(condition) {
statement(s);
}
參數(shù)
condition 每次執(zhí)行 while 動作時都要重新計算的表達(dá)式。如果該語句的計算結(jié)果為 true,則運行 statement(s)。
statement(s) 條件的計算結(jié)果為 true 時要執(zhí)行的代碼。又叫循環(huán)體
說明
動作;測試表達(dá)式,只要該表達(dá)式為 true,就重復(fù)運行循環(huán)中的語句或語句序列。
在運行語句塊之前,首先測試 condition;如果該測試返回 true,則運行該語句塊。如果該條件為 false,則跳過該語句塊,并執(zhí)行 while 動作語句塊之后的第一條語句。
通常當(dāng)計數(shù)器變量小于某指定值時,使用循環(huán)執(zhí)行動作。在每個循環(huán)的結(jié)尾遞增計數(shù)器的值,直到達(dá)到指定值為止。此時,condition 不再為 true,且循環(huán)結(jié)束。
while 語句執(zhí)行的步驟。
1 計算表達(dá)式 condition。2 如果 condition 的計算結(jié)果為 true,或者一個可轉(zhuǎn)換為布爾值 true 的值(比如一個非零數(shù)字),則轉(zhuǎn)到步驟 3。否則,while 語句結(jié)束,并從 while 循環(huán)之后的下一語句恢復(fù)執(zhí)行過程。3 運行語句塊 statement(s)。4 轉(zhuǎn)到步驟 1。
步驟 1 至 4 的每次重復(fù)叫做循環(huán)的“迭代”。在每次迭代的開始重新測試 condition.
示例1
此示例在舞臺上復(fù)制五個影片剪輯,每個影片剪輯具有隨機生成的 、 位置;xscale、yscale 以及 _alpha 屬性以達(dá)到分散的效果。.變量 foo 初始化為值 0。設(shè)置 condition 參數(shù)使 while 循環(huán)運行五次,即只要變量 foo 的值小于 5 就運行。在 while 循環(huán)中,復(fù)制影片剪輯,并使用 setProperty 調(diào)整所復(fù)制影片剪輯的各種屬性。循環(huán)的最后一條語句遞增 foo,以便當(dāng)該值達(dá)到 5 時,condition 參數(shù)計算結(jié)果為 false,從而不再執(zhí)行該循環(huán)。
on(release) {
foo = 0;
while(foo < 5) {
duplicateMovieClip("_root.flower", "mc" + foo, foo);
setProperty("mc" + foo, _x, random(275));
setProperty("mc" + foo, _y, random(275));
setProperty("mc" + foo, _alpha, random(275));
setProperty("mc" + foo, _xscale, random(200));
setProperty("mc" + foo, _yscale, random(200));
foo++;
}}
2 do_while
do {statement(s)
} while (condition)
參數(shù)
condition 要計算的條件。
statement(s) 只要 condition 參數(shù)計算結(jié)果為 true 就會執(zhí)行的語句。
動作;執(zhí)行語句,然后只要條件為 true,就計算循環(huán)中的條件。
二 for
格式
for(init; condition; next) {
statement(s);
}
參數(shù)
init 一個在開始循環(huán)序列前要計算的表達(dá)式,通常為賦值表達(dá)式。此參數(shù)還允許使用 var 語句。
condition 計算結(jié)果為 true 或 false 的表達(dá)式。在每次循環(huán)迭代前計算該條件;當(dāng)條件的計算結(jié)果為 false 時退出循環(huán)。
next 一個在每次循環(huán)迭代后要計算的表達(dá)式;通常為使用 ++(遞增)或 --(遞減)運算符的賦值表達(dá)式。
statement(s) 在循環(huán)體內(nèi)要執(zhí)行的指令。
說明
動作;一種循環(huán)結(jié)構(gòu),首先計算 init(初始化)表達(dá)式一次,只要 condition 的計算結(jié)果為 true,則按照以下順序開始循環(huán)序列,執(zhí)行 statement,然后計算 next 表達(dá)式。
示例1
下面是使用 for 重復(fù)執(zhí)行同一動作的示例。下面的代碼中,for 循環(huán)將從 1 到 100 的數(shù)字相加:
var sum = 0;
for (var i=1; i<=100; i++) {
sum = sum + i;
trace(sum);//
}
結(jié)果