最常用的flash語句
2024-09-12 17:50:33
供稿:網(wǎng)友
box_btn.onPress=function(){
trace("ok");
};
按鈕實例名稱.事件處理方法=function(){
//處理程序
};
例如:
n=1
box_btn.onRelease=function(){
n=n+1
trace("n="+n);
}
當(dāng)按鈕被點一下的時候,Output窗口會輸出:"n=2"
onClipEvent(load){
stop();
}
以上是影片剪輯的事件處理函數(shù)。"()"的內(nèi)部是事件。
在一個FLASH里在第一個場景里調(diào)用第二個場景,
要在第一個場景里需要調(diào)用的地方加個按鈕,然后在按鈕上寫下如下代碼:
on (release) {
tellTarget ("_root") {
gotoAndPlay ("mm2", 1);
}
}
其中,"mm2"是第二個場景的MC的名稱。
on (release) {
loadmovie("fz3.swf",1);
setProperty("fz3.swf",_x,100);
setProperty("fz3.swf",_y,100);
_root.createEmptyMovieClip("Card Game");
mc.loadMovie("fz3.swf");
mc._x=0;
mc._y=0;
}
fz3.swf是需要調(diào)入的SWF文件,_x,_y是坐標(biāo)軸
Card Game是SWF中MC的名字
on(release)結(jié)構(gòu)只能用于按鈕,
其他相關(guān)的幾種用法如on(press)、on(rollOver)、on(rollout)、on(dragOver)、on(dragOut)等。
2.else
對if語句可以進行擴展,使用else執(zhí)行條件不成立(比較表達式為false)時的代碼,如下所示:
if (x == 9) {
gotoAndPlay(15);
} else {
gotoAndPlay(16);
}
你也可以使用else if語句將if語句更推進一步,如下所示:
if (x == 9) {
gotoAndPlay(15);
} else if (x == 10) {
gotoAndPlay(16);
} else if (x == 11) {
gotoAndPlay(20);
} else {
gotoAndPlay(25);
}
你可以讓if語句想要多長就有多長,你也可以使用else if語句對別的變量進行比較,如下所示:
if (x == 9) {
gotoAndPlay(15);
} else if (y<20) {
gotoAndPlay(16);
} else {
gotoAndPlay(25);
}
3.復(fù)合比較
你可以在一個if語句中對幾個比較表達式的值進行判斷,
比如說你希望在x為9并且y為20時跳轉(zhuǎn)到第10幀,可以使用如下所示的腳本:
if ((x == 9) && (y == 20)) {
gotoAndPlay(10);
}
邏輯與運算符&&將兩個比較表達式聯(lián)接在一起成為一個復(fù)合表達式,
當(dāng)兩個表達式的值都為true時復(fù)合表達式的值才為true。
每個比較表達式都需要添加獨立的括號以便Flash能正確識別。
在Flash的早期版本中使用and執(zhí)行邏輯與運算,現(xiàn)在已推薦不使用。
你也可以使用邏輯或運算符||將兩個比較表達式聯(lián)接在一起成為一個復(fù)合表達式,
只要有一個表達式的值為true,復(fù)合表達式的值就為true。如下所示:
if ((x == 7) || (y == 15)) {
gotoAndPlay(20);
}
在該腳本中,只要x為7或者y為15,或者兩者都成立,結(jié)果都是跳轉(zhuǎn)到第20幀。
只有當(dāng)兩者都不成立時,才不會執(zhí)行g(shù)otoAndPlay命令。
3.4.6 函數(shù)
到現(xiàn)在為止,我們都是將腳本放在影片的第1幀中。
如果程序相當(dāng)復(fù)雜,再放在同一幀中就使腳本顯得太龐大了。
函數(shù)使你可以組織需重用的代碼,并放在時間軸中,例如:
function myFunction(myNum) {
var newNum = myNum+5;
return newNum;
}
函數(shù)以關(guān)鍵字function開頭,function后面是函數(shù)名。
與變量名相似,你可以指定自己的函數(shù)名,最好將函數(shù)名取得有意義一些。
函數(shù)名后面的括號容納該函數(shù)的參數(shù),所謂參數(shù)也是一個變量,它的值在調(diào)用該函數(shù)時予以指定。
一個函數(shù)可以有若干參數(shù),也可以沒有參數(shù)。無論有沒有參數(shù),函數(shù)名后都應(yīng)緊跟一對括號。
大括號中的部分是函數(shù)體,在函數(shù)體中創(chuàng)建了一個局部變量newNum,
將myNum加5的結(jié)果設(shè)置為newNum的值。
如果你將10作為參數(shù)傳遞給該函數(shù),newNum的值就是15。
return命令僅用于函數(shù)中,使用return結(jié)束一個函數(shù)并返回函數(shù)值。
此處,newNum是用return命令返回的函數(shù)值。
要使用函數(shù),就需要調(diào)用它,如下所示:
var a = myFunction(7);
該語句創(chuàng)建一個新的局部變量a,將7作為參數(shù)調(diào)用函數(shù)myFunction,并將函數(shù)返回的結(jié)果作為變量a的值。
被調(diào)用的函數(shù)開始運行,創(chuàng)建一個局部變量myNum,將7作為myNum的值,
然后執(zhí)行函數(shù)體內(nèi)的代碼,使用return命令將newNum的值12返回給函數(shù)的調(diào)用者。這時,a的值變?yōu)?2。
函數(shù)最大的作用體現(xiàn)在它可以重復(fù)使用。如下所示的3行代碼產(chǎn)生3個不同的結(jié)果:
trace(myFunction(3));
trace(myFunction(6));
trace(myFunction(8));
運行以上代碼,你將得到結(jié)果8、11和13。
使用函數(shù)還有一個好處就是可以只改變函數(shù)中的一處,從而影響所有調(diào)用該函數(shù)的命令。
例如,將函數(shù)myFunction中的var newNum = myNum+5改成var newNum = myNum+7,
上面3個調(diào)用該函數(shù)的命令的結(jié)果將變成10、13和15點語法的另一個用途是指定影片剪輯的屬性。
如下面的語句將影片剪輯myMC的_alpha(透明度)屬性設(shè)置為50%:
myMC._alpha = 50;
你還可以在影片剪輯中使用點語法定位根(root)中的一個全局變量。
如果你在主時間軸中創(chuàng)建了一個全局變量globelVar,
而要在影片剪輯中使用這個全局變量,可以使用如下的語句:
trace(_root.globleVar);
stop:使影片停止在當(dāng)前時間軸的當(dāng)前幀中。
play:使影片從當(dāng)前幀開始繼續(xù)播放。
gotoAndStop:跳轉(zhuǎn)到用幀標(biāo)簽或幀編號指定的某一特定幀并停止。
gotoAndPlay:跳轉(zhuǎn)到用幀標(biāo)簽或幀編號指定的某一特定幀并繼續(xù)播放。
nextFrame:使影片轉(zhuǎn)到下一幀并停止。
prevFrame:使影片回到上一幀并停止。
stop命令常常用在幀動作中,以使影片停止并等待用戶控制。
其他命令常常用在按鈕的事件處理函數(shù)中。
如果gotoAndPlay命令中只有一個參數(shù),F(xiàn)lash將認為它代表某個幀;
如果有兩個參數(shù),第1個參數(shù)將作為場景名,第2個參數(shù)代表該場景中的幀。
要定位包含某一對象的上一級對象,可以使用關(guān)鍵字_parent。
如果一個影片剪輯是包含在主時間軸中,在影片剪輯中使用_parent和_root的效果是一樣的。
如果影片剪輯與主時間軸相差兩個層級,即當(dāng)影片剪輯包含在另一個位于主時間軸中的影片剪輯中,
這時在該影片剪輯中使用_parent指代的是它上一級的影片剪輯,
而_root是指它上兩級的主時間軸。在主時間軸中不能使用_parent,因為主時間軸沒有上一級。
9.詳細了解GOTO語句
prevFrame()
跳至并停止在前一禎。
nextFrame()
跳至并停止在下一禎。
prevScene()
跳至并停止在前一場景的第1幀。
nextScene()
跳至并停止在下一場景的第1幀。
gotoAndPlay([scene,] frame)
跳至scene場景(省略表示當(dāng)前場景)的frame幀并播放。
gotoAndStop([scene,] frame)
跳至scene場景(省略表示當(dāng)前場景)的frame幀并停止。
10,了解MC的各種可改寫的屬性
_x 中心點所在相對X坐標(biāo)(象素單位)
_y 中心點所在相對Y坐標(biāo)(象素單位)
_xscale 橫向縮放比例,初始為100
_yscale 縱向縮放比例,初始為100
_rotation 相對旋轉(zhuǎn)角度(度單位)
_width 相對顯示寬度(象素單位)
_height 相對顯示高度(象素單位)
_alpha 顯示透明度(0~100)
_visible 是否可見
_focusrect 是否顯示焦點框
_name 實例名稱
11,三大紀律:1>寫代碼時一定要用英文(如EN CH)輸入法
2>必須要有唯物主義思想,沒有加載的MC是不可以更改它的屬
性,更不可以寫代碼去控制它。這個問題較難掌握,高手有時也會
犯,道理就是先有吃的才能請客吃,啥也沒有請客吃什么呢
3>操作什么一定要選什么(實際上哪個軟件也要這樣)。在MX中加代
碼時如不選,就一定要寫明名稱,實際上也是一種先擇。
12,八項注意:1>按鈕不能蓋著輸入文本,動態(tài)文本和輸入文本域不能蓋著按鈕
2>用loadMoie時LEVEL1及以上的文件盡量少用大隱型按鈕
3>從一個文件中復(fù)制MC實例到別一個文件中時,盡量復(fù)制幀,而不能直接
復(fù)制實例,
4>從一個文件中復(fù)制MC實例到別一個文件中時,要先把目標(biāo)文件中的符
號庫中原有的符號,裝進資夾里,很多網(wǎng)友這個問題上上過當(dāng)吧?
需要記住一個動作的作用時,可在動作面板中使用comment(注釋)語句給幀或按鈕動作添加注釋。如果你在協(xié)作環(huán)境中工作或給別人提供范例,添加注釋有助于別人對你編寫的腳本的正確理解。
在動作面板中選擇comment動作時,字符"http://"被插入到腳本中。如果在你創(chuàng)建腳本時加上注釋,即使是較復(fù)雜的腳本也易于理解,例如:
on(release){
//建立新的日期對象
myDate = new Date();
currentMonth=myDate.getMonth();
//把用數(shù)字表示的月份轉(zhuǎn)換為用文字表示的月份
monthName = calcMoth(currentMonth);
year = myDate.getFullYear();
currentDate = myDate.getDat();
}
常量
常量有其值永不改變的屬性。常數(shù)用大寫字母列于動作工具箱中。例如,常數(shù)BACKSPACE、ENTER、QUOTE、RETURN、SPACE和TAB是Key對象的屬性,指鍵盤上的鍵。要測試用戶是否在按Enter鍵,可使用下面的語句:
if(keycode()= =key.ENTER){
alert = "你準(zhǔn)備好了嗎?"
controlMC.gotoAndStop(5);
}