這篇教程為“Flash AS 入門教程”的一部分。查看全套教程>>>>。
源文件下載
本節應掌握的知識要點:
①影片剪輯屬性調整;②相對路徑、絕對路徑的應用;③賦值運算符“=”應用;④了解算術組合賦值運算符“+=”、“-=”、“*=”、“/=”。
屬性概念是我們生活中隨處可見的,各種物體都有自己的屬性,比如我們的食用水,它的自然屬性是透明、無色、無味的液體,這些屬性通過一些加工手段是可以改變的,加入調色劑可以使它的透明度和色澤發生變化,加入調味劑可以改變它的味道,放入冰箱冷凍可以讓它凝固成冰塊。
在Flash 中,影片剪輯對象也有自身的許多屬性,比如坐標位置、透明度、大小、旋轉角度等等,運用動作腳本語句可以對其屬性進行修改調整。
路徑概念在前面已經接觸過了,我們將在這一節里加深理解。 請看示例動畫“實例1-4”。
>>>>>點擊查看動畫效果<<<<<
實例1-4 “影片剪輯”屬性調整
我們先分析畫面層次結構:畫面很簡單,在黃藍色相間的主場景(_root)上,右下角放有幾組按鈕,中間有一個實例名為“huan_mc”的影片剪輯,“huan_mc”影片剪輯中還嵌套了一個實例名為“shu_mc”的影片剪輯,shu_mc影片剪輯里有一個圓形、一只小松鼠和4只按鈕。
把鼠標分別移到各個按鈕上,可以顯示按鈕上設置的動作,點擊主場景上的按鈕和shu_mc影片剪輯里的按鈕,可以分別控制各級影片剪輯的相應屬性。
從絕對路徑控制影片剪輯屬性:
下面我們先來看看通過主場景上按鈕的release事件對影片剪輯huan_mc進行屬性控制。
主場景上的一組藍色按鈕控制的是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”的時間軸。
所以,當點擊按鈕時,控制的是主場景時間軸的等比例縮放。
路徑小結:
這個實例,主場景上的按鈕都是由外向內通過絕對路徑的方式分別控制各個級別影片剪輯對象的屬性,而嵌套在影片剪輯內部的按鈕則是由內向外通過相對路徑的方式控制各級父級影片剪輯的屬性。
事實上,絕對路徑與相對路徑的區別是到達目標對象的出發點不同,絕對路徑是以當前主場景(即根時間軸)為出發點,以目標對象為結束點;而相對路徑則是從發出指令的對象所在的時間軸為出發點,以目標對象為結束點。
理解了路徑的概念,我們就可以靈活的運用了。比如上面實例中的所有按鈕,其實都可以分別運用絕對路徑和相對路徑的方式來實現相同的控制效果。
新聞熱點
疑難解答