在AS指令碼語言中我們經常看到點(.)官方對點文法(運算子)的說明是這樣的:
運算子;用於定位影片剪輯的階層,以便訪問嵌套的(子級)影片剪輯、變數或屬性。點運算子也用於測試或設定對象的屬性、執行對象的方法或建立資料結構。
上面的語言比較精練,不容易理解。
在ActionScrip指令碼語言中,點(.)點用來明確某個電影剪輯(MC)或者對象(Object)的相關的屬性和方法。簡單點的說有些像斜杠文法(斜杠文法主要用於老版本的Flash中,如:Flash3 Flash4 當然Flash5++也是支援這種斜杠文法,斜杠文法的作用就是用於指出變數,電影剪輯,的目標路徑)
點文法是用於指向變數或電影剪輯的目標路徑,其表達試由電影剪輯或者對象的名字為起點,緊挨著便是一個小點,而後是要指定的方法,屬性或者變數,舉個簡單的例子:
_alpha是擷取電影剪輯的透明度 運算式 lewiMC._alpha就是擷取電影剪輯lewiMC的透明屬性,在如_x是獲得電影剪輯的x的橫座標,運算式lewiMC._x就是擷取lewiMC這個電影剪輯的橫座標,上面2個例子比較簡單很容易理解。
我們來看下這個稍微複雜點的運算式
lewi.from.China=true
這個運算式要用不用AS文法去理解,英文翻譯到是很簡單,但他在AS.文法中的含義是不同的。對上面運算式的理解是:
China電影剪輯是from中一個變數,而這個from又被嵌套在電影剪輯lewi中的電影剪輯。
要表達一個電影剪輯和對象的方法是相同的,如要移動lewiMC電影剪輯的播放頭可以寫成lewiMC.play();
在點文法中還有2個特殊的“小名”分別是_parent和_root通過字面意思不難看出一個是父時間軸,一個是主時間走,我們先介紹第一個_parent
我們約定lewiMC被嵌套在電影剪輯lewi’sFatherMC之中如果要在lewiMC電影剪輯上告訴lewi’sFatherMC的電影剪輯停止播放,我們應該這樣表達 _parent.stop();
注:此指令碼寫在lewiMC這個電影剪輯上。
上面基本上就是點文法的詳細用法,可能大家會想點文法和斜杠文法意義部差不多嗎?
為什麼不用斜杠文法呢?很多指令碼範例中用到tellTarget動作我就能看到斜杠文法啊!
前面我們說過斜杠文法主要應用於老版本的FlashPlayer中,雖然高版FlashPlayer同樣支援斜杠文法,但我們不推薦使用!在斜杠文法中,斜杠被用代替點。如:
worldMC.asiaMC.ChinaMC.lewiMC.my variable (點文法)和
worldMC/asiaMC/ChinaMC/lewiMC/my variable (斜杠文法)
說表達的效果是一樣的。
關於點文法是AS指令碼編寫說必須理清楚的基礎知識!希望大家都能掌握。