flash 语法 入门
語法格式:
on (mouseEvent) {
}
“()”小括號中的mouseEvent參數是鼠標事件,常用的有以下幾種鼠標事件:
Press ---當鼠標指針經過按鈕時按下鼠標。
release ---當鼠標指針經過按鈕時按下再釋放鼠標按鈕。
releaseOutside ---當鼠標指針在按鈕之內時按下按鈕后,將鼠標指針移到按鈕之外,此時釋放鼠標按鈕。
rollOut ---鼠標指針滑出按鈕區域。
rollOver ---鼠標指針滑過按鈕。
?
------------------------------------------------------------------------------------------------
on (release) {
_root.shu_mc.stop();
}
?
絕對路徑:Flash中目標路徑有兩種,絕對路徑和相對路徑,我們今天接觸的“_root.shu_mc.stop()”是絕對路徑,指定了發生stop動作的絕對地址和對象,這個絕對地址就是當前場景_root,對象就是影片剪輯“shu_mc”,即讓當前場景“_root”上的實例名為“shu_mc”的影片剪輯對象“stop”停止播放。
?
?
如果我們要執行動作的對象“shu_mc”影片剪輯,沒有直接位于主場景上,而是嵌套在另外一個位于主場景的影片剪輯“a”中,甚至是嵌套在更深的級別中呢,那就得一級級指明路徑,程序指令才能正確的執行。
打個比方,我們在閃客起航論壇的首頁上,要打開論壇里的“敲開Flash AS之門”這篇教程,就得按照正確的路徑一級一級的找到它才能打開,如果我們把URL的路徑“/”換成“.”來表示,打開這個教程的路徑就是:
啟航論壇首頁(_root).Flash技術論壇(mc1).腳本技術區(mc2).敲開Flash AS之門(mc3).打開(動作);
?
_root絕對路徑,即當前,或根目錄
?
點語法“.”:是基于“面向對象”的語法形式,就是利用目標對象本身去管理自己,用“.”語法通知目標對象執行什么指令是非常簡潔的語法形式。比如此處,就用了“.”語法通知“_root”上的“shu_mc”“stop”停止播放。
對象的后綴: 在Flash中有各種對象,如按鈕、影片剪輯、文本、圖形、聲音對象等等,在動作腳本中,有對應這些對象的特定后綴,每一種后綴代表一種特定的對象,比如影片剪輯的后綴為“_mc”,文本對象的后綴為“_txt”,在為對象命名時有必要正確的添加后綴,如上面的“shu_mc”,這樣不僅使語句更符合規范,在別人解讀代碼時方便的知道對象的類型,也能夠讓Flash識別對象的類型,在添加語句時才能有效使用代碼提示功能。
?
?
on (rollover){
?_root.stop();
}//當鼠標滑過影片剪輯時,停止播放當前時間軸
on (press){
?stop();
}//當鼠標按下時,停止播放剪輯
on (release){
?play();
}//當在影片剪輯上按下并釋放鼠標時,播放影片剪輯
on (rollout){
?_root.play();
}//當鼠標滑離影片剪輯時,播放當前時間軸
?
------------------------------------------------------------------------------------------------
? 主場景上的一組藍色按鈕控制的是huan_mc的透明度屬性:
_alpha : 透明度屬性,以百分比為單位。
藍色減號“-”按鈕上的語句:
on (release) {
_root.huan_mc._alpha = 50;
} //點擊按鈕時,將場景上的huan_mc影片剪輯透明度設為50
藍色加號“+”按鈕上的語句:
on (release) {
_root.huan_mc._alpha = 100;
} //點擊按鈕時,將場景上的huan_mc影片剪輯透明度設為100。
這一組按鈕的語句很簡單,直接將一個常量賦值給場景上的huan_mc影片剪輯對象的透明度屬性。
主場景上的一組紅色按鈕控制的是huan_mc的縱、橫向縮放比例屬性:
_xscale 影片剪輯的橫向縮放比例,以百分比為單位。
_yscale 影片剪輯的縱向縮放比例,以百分比為單位。
紅色加號“+”按鈕上的語句:
on (release) {
_root.huan_mc._xscale = _root.huan_mc._xscale*1.1;
_root.huan_mc._yscale = _root.huan_mc._yscale*1.1;
}
紅色減號“-”按鈕上的語句:
on (release) {
_root.huan_mc._xscale = _root.huan_mc._xscale*0.9;
_root.huan_mc._yscale = _root.huan_mc._yscale*0.9;
}
這一組按鈕上的語句中,屬性的取值就不是一個簡單的常量了,而是通過兩個表達式計算出對象的縱、橫向縮放比例,如“_root.huan_mc._xscale*1.1”,計算的結果就是橫向縮放比例為場景上的huan_mc橫向縮放比例的1.1倍即110%。再將這個結果賦值給表達式左邊指定的影片剪輯對象的相應屬性,點擊一次按鈕就會計算一次,由此令該影片剪輯對象按照每一次計算出的比例進行縱、橫向等比例縮放。
?
? 下面再來看看主場景上的一組綠色“上”、“下”、“左”、“右”按鈕,這一組按鈕控制的是位于huan_mc內部的shu_mc的縱、橫坐標屬性。
_x 影片剪輯的橫坐標屬性,單位為像素。
_y 影片剪輯的縱坐標y 坐標,單位為像素。
綠色“向上”按鈕上的語句:
on (release) {
_root.huan_mc.shu_mc._y = _root.huan_mc.shu_mc._y-10;
}
當點擊鼠標時,即由右邊的表達式計算出“shu_mc”的y(縱)坐標位置,然后賦值給shu_mc的縱坐標屬性,如shu_mc在場景上的初始x、y位置為(0,0),第一次點擊鼠標,shu_mc的位置變為(0,-10),即上移10個像素。每點擊一次,上移10個像素。
其他“向下”、“向左”、“向右”3個按鈕同理。
主場景右下角綠色加號“+”、減號“-”按鈕控制的是主場景(_root)的縱、橫向等比例縮放,每點擊一次減號“-”按鈕,主場景按90%的比例縮小,點擊加號“+”按鈕,比例還原到100%。
從相對路徑控制影片剪輯屬性:
以上所述,主場景上的按鈕都是以絕對路徑的方式控制各級影片剪輯的相關屬性。絕對路徑在前面的內容里已經學習過。下面我們再來看看位于“shu_mc”影片剪輯內部的按鈕是如何控制影片剪輯屬性的。
分別點擊兩個紅色按鈕,可以調整huan_mc影片剪輯的縱、橫向等比例縮放,分別點擊兩個綠色按鈕,可以控制主場景的縱、橫向等比例縮放,與主場景上相應按鈕的控制效果相同,但是,它們路徑的指向卻有所不同。
紅色加號“+”按鈕上的語句:
on (release) {
this._parent._xscale = this._parent._xscale*1.1;
this._parent._yscale = this._parent._yscale*1.1;
}
紅色減號“+”按鈕上的語句:
on (release) {
this._parent._xscale = this._parent._xscale*0.9;
this._parent._yscale = this._parent._yscale*0.9;
}
與主場景上紅色按鈕的語句不同之處是,路徑不一樣,前者使用標識符“_root”指定絕對路徑,而這里是以標識符“this”和“_parent”指定相對路徑,這是我們這一節要掌握的又一個知識點。
this 當將其附加到按鈕的 on 事件動作中時,它指向的是包含該按鈕的影片剪輯的時間軸。
_parent 當將其附加到按鈕的 on 事件動作中時,它指向的是包含該按鈕的影片剪輯時間軸的上一級時間軸,即父時間軸。
比如紅色按鈕上的“this._parent”,this指向的就是包含了按鈕的“shu_mc”影片剪輯的時間軸,“_parent”指向的是包含了按鈕的“shu_mc”影片剪輯的上一級影片剪輯的時間軸,即“huan_mc”影片剪輯時間軸。
所以,當點擊位于“shu_mc”中的紅色按鈕時,它控制的是“huan_mc”的縱、橫向等比例縮放屬性。
再看位于“shu_mc”中的綠色按鈕上的語句:
綠色減號“-”按鈕上的語句:
on (release) {
this._parent._parent._xscale = this._parent._parent._xscale*0.9;
this._parent._parent._yscale = this._parent._parent._yscale*0.9;
}
綠色加號“+”按鈕上的語句:
on (release) {
this._parent._parent._xscale = 100;
this._parent._parent._yscale = 100;
}
這里,又多了一級“_parent”,按照上面的路徑分析,“_parent._parent”指向的就應該是包含了按鈕的“shu_mc”影片剪輯的上一級“huan_mc”影片剪輯的上一級時間軸,即主場景“_root”的時間軸。
所以,當點擊按鈕時,控制的是主場景時間軸的等比例縮放。
?
以shu_mc里嵌套的按鈕為例,我們把綠色減號“-”按鈕上控制主場景橫向縮放比例的語句改成絕對路徑方式:
this._parent._parent._yscale 可以寫成 _root._yscale
在熟悉了路徑概念,并能加以靈活應用之后,語句是可以加以簡化的,比如:
_root.huan_mc._alpha = 100; 可以寫成 huan_mc._alpha = 100;
this._parent._parent._yscale = 100; 可以寫成 _parent._parent._yscale = 100;
路徑的概念非常重要,在添加動作時,如果路徑的指向不正確,就實現不了預期的效果,甚至會引起程序出錯。
轉載于:https://www.cnblogs.com/JamyWong/archive/2010/05/31/1748065.html
總結
以上是生活随笔為你收集整理的flash 语法 入门的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: IOS15上纯代码布局之导航控制器的导航
- 下一篇: Openstack window 10