土人系列AS入門教程 物件篇

2021-08-25 03:08:32 字數 2749 閱讀 2965

[1b]as 物件篇[/1b]

-----------------------------------

雖然as不是真正的物件導向的程式設計,但是它也有物件的概念。這個概念貫穿整個as的始終,所以,對物件的理解,比對語法或者其他的理解更為重要。現在開始吧:

首先,我們來了解一下

[color="#ff0000"]路徑[/color]

,路徑分兩種:[1b]絕對路徑和相對路徑[/1b]。做過html的朋友應該知道這個概念。但這裡我還是要詳細解釋一下,我認為對路徑的理解要深入,我初學的時候就是磕在路徑上。

在講路徑之前,有必要先講一下 .語法 : 舉例說明,這裡要表示房間裡的桌子上的一本書,用 .語法這麼表示:

房間.桌子.書

如果要再細到書上的頁上面的字,很顯然

房間.桌子.書.頁面.字

看明白了吧?我也不懂得怎麼說, .語法就是這樣表示物件的,[1b]點的前面是其後面的父級[/1b]。如房間是桌子的父級,桌子的子級就是書。

還是不明白?這樣吧,你把 . 裡寫成「裡面的」就可以了,這樣就是

房間(裡面的)桌子(裡面的)書(裡面的)頁面(裡面的)字

這樣容易多了吧?

現在我開始說路徑了,其中也要夾雜的物件的說明,看:

從例子入手。新建乙個flash檔案,然後建立乙個movieclip,mc命名為「mc」,放在主場景裡面,然後再建立乙個按鈕,放在「mc」裡面,然後從庫裡面拖乙個出來放在主場景,分別給這兩個元素例項命名(

[color="#ff0000"]instance name[/color]

, 注意是例項名不是mc的名字):mc->mymc button->mybtn

現在我們假設主場景是房子,mc是桌子,按鈕是書,那麼分別怎麼表達房子,桌子,書呢?如下

_root  房子

_root.mymc  房子.桌子

_root.mymc.mybtn  房子.桌子.書

這裡的 _root 是flash的關鍵字,表示主場景的 timeline (時間線)。

很容易理解對不。這裡的 房子,桌子,書 都是我們要理解的「[1b]物件[/1b]」。

當你找到這個物件後,才能對物件進行操作,才能給物件施加方法。比如,我現在要打掃房子,打掃是方法,但物件是房子,表示式是這樣 :

房子.打掃()

如果你不能正確的表達房子這個物件,你的打掃也就不能正確的實施了。

*[1b]說明[/1b]:這裡為什麼要在打掃後面加()呢?因為打掃是方法不是物件,為了讓flash知道這是個方法,我們必須加上(),要不然它會以為房子裡面有「打掃」這個東西。

現在,我們可以很容易的對房間裡面的各個東西進行操作,如

房子.打掃();

房子.木桌子.整理();

房子.玻璃桌子.打碎();

房子.書桌.書.看();

_root.stop();

_root.mymc.stop();

現在說說相對路徑。還是上面的例子。假如給你下了乙個命令:[1u]修理房子裡面的紅色的椅子[/1u]。那麼怎麼表達呢?就是:

房子.紅色椅子.修理()

無論給你下命令的人在**告訴你的,你都會知道要修理的椅子是哪一張。但是他如果這麼說:修理你現在坐的這張椅子。紅色的?還是藍色的?這就要取決於你坐在哪個椅子上了。那麼相對的表示式就是

我坐的椅子.修理();

這裡為什麼不這麼寫呢:房子.我坐的椅子.修理()

這麼寫是錯的,因為我坐的椅子是不固定的,我說不定把椅子搬到房子外面去坐,那這個表示式就錯了,因為椅子根本就不在房子裡面。

我你猜想到的辦法可能就是在主場景放入這個mc的那個幀寫上:

_root.mymc.stop();

這個是對的。但是一旦 mymc 的名字一變,你就得跟著改這句話了。

有沒有辦法不管這個「mc」的例項名不管怎麼改,都會被我們同樣一句的as找到?當然可以,前提是你的as必須「[1b]坐在這個mc上[/1b]」。

進入mc的編輯狀態 , 在 mc 的 timeline 的第一幀寫上

this.stop();

這裡的[color="#ff0000"]this[/color]

也是flash的關鍵字 , 這個 this 指as所在的這條 timeline .

現在不管你這個mc放在**,命名是什麼,我都不管,反正肯定會停下來。為什麼,因為as正「坐在mc上」。

如果你在這裡寫上 _root.stop();

那就錯了。為什麼?仔細想想。

這個 this 就是相對路徑的關鍵字之一。你必須要仔細理解它。

另外的乙個關鍵字就是 _parent 。如果你理解了 this , 那麼

[color="#ff0000"]_parent[/color]

並不難理解。舉例:

還是哪個假設 房子(_root) , 桌子( mc_zhuozi ) , 書 (mc_shu) 他們的關係是(括號內為mc例項名)

房子.桌子.書

_root.mc_zhuozi.mc_shu

在 mc_zhuozi 的 timeline 裡面寫

_parent.打掃();

意思就是打掃房間;

在 mc_shu 的 timeline 裡面寫

_parent.打掃();

意思就是打掃桌子。

_parent 也就是父級。桌子的 _parent 就是房子的 timeline , 書的 _parent 也就是 桌子的 timeline。點的後面的物件 的 _parent 就是點前面的物件。

今次就到這吧,回顧下:

點語法學會表達物件

學會用絕對路徑和相對路徑表達物件

土人系列AS入門教程 語法篇

1b as 語法篇 1b 接下來我要講的是as的語法。如 gotoandplay 正確 gotoand color f40000 p color lay 錯誤 關鍵字的拼寫必須和語法一致,要做到很容易,因為在flash的as面板裡面,關鍵字會有不一樣的顏色顯示。很多flash小鳥們也許要開始埋怨,記...

土人系列AS入門教程 基礎篇

1b 前言 1b 我寫的這些教程,目的是希望初學flash的愛好者們能 color ff0000 1b 多動手,少提問 1b color 我下面這些教程面象有 flash mx 基礎操作知識的讀者。在看我的教程的同時,希望也能開啟flash,邊看邊做,這樣你的印象會更加深刻一點,順便也看看我 寫錯了...

APICloud 入門教程視窗篇

api.openwin開啟乙個window視窗。window視窗是全屏的,不可設定大小。api.openframe開啟乙個frame視窗。frame 視窗可以設定大小。openwin示例 api.openwin firstpage.html 頁面 doctype html html lang en ...