天天看點

《ActionScript 3.0基礎教程》——2.2 顯示隊列概述

本節書摘來自異步社群《actionscript 3.0基礎教程》一書中的第2章,第2.2節,作者: 【美】doug winnie 更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。

在flash中,有一些規則定義了元件是如何被顯示在螢幕上的,所有可以顯示的元件都來自一個特殊的地方,我們叫它“顯示隊列”。顯示隊列中列出了所有你可以添加或者删除的對象,因為你是用actionscript來建立對象的,是以這些對象在你沒有把它們加入顯示隊列前是不會顯示出來的。

為什麼需要顯示隊列呢?有時,你會需要建立對象并且還能對它進行修改,但是并不需要将對象顯示出來給使用者看見。這個對象也許是一個沒有準備好使用的元件,或者是需要隐藏起來的東西,對象實際上是在那的,隻是使用者看不見而已。

在過去,flash使用者會通過設定.visible屬性值為false來隐藏元件,或者也可以設定.alpha為0達到同樣效果,但是如果你有非常多的元件,這會讓程式運作速度變慢。

2.2.1 在舞台上建立新對象

現在你已經對顯示隊列有了一定的了解,讓我們寫點代碼實踐一下。從庫中建立actionscript對象對你來說應該已經不成問題了,因為你學習了類和顯示隊列。

在我們用代碼建立圓圈以前,你需要把舞台上的東西都清除掉。

1.選中舞台上的圓圈,删除它。

2.在目前項目中建立一個新的時間軸層。

3.取名新的層叫scripts。

4.選中新層的空白第一幀。

5.打開動作面闆。

6.在動作面闆中,加入下面的代碼:

輸入代碼後,你的界面應該如圖2.5所示。

《ActionScript 3.0基礎教程》——2.2 顯示隊列概述

7.運作程式。

你會發現藍色圓圈被顯示在了左上角(圖2.6),這是因為圓圈對象在被建立的時候就有了初始坐标值0,0,也就是左上角。

讓我們分析一下這幾句代碼,第一行:

可以這樣了解,一個叫做mycircle的對象被建立,它被指派成了bluecircle類的一個執行個體,過程如圖2.7所示。

《ActionScript 3.0基礎教程》——2.2 顯示隊列概述
《ActionScript 3.0基礎教程》——2.2 顯示隊列概述

在這組插圖中,第一組展示了你正在建立一個叫做mycircle的對象。在以後的章節裡你會學到更多關于var語句的内容,現在隻要記住你建立的新對象叫做mycircle。接下來注意你庫中的bluecircle“便利貼堆”,或者我們可以正式的叫它類。

第二組圖檔展示了你正在從便利貼堆中抽出一張,使用的是new語句,建立了bluecircle類的執行個體。當執行個體剛被建立好時,它還沒有名字。

第三組圖檔展示了還沒有名字的bluecircle執行個體被賦給了已經命名的mycircle對象。對對象進行操作一定要做這樣的指派,因為我們隻能操作有名字的執行個體。

這個過程和直接把對象從庫中拖拽到舞台上并給它取名是完全相同的效果。

看第二行代碼:

這行代碼表示将藍色圓圈加入顯示隊列,它就能被使用者看見了。addchild語句會将括号中的對象加入到顯示隊列中。

當flash開始運作時,flash會不斷地檢查顯示隊列,把其中的對象顯示到螢幕上,藍色圓圈已經在顯示隊列裡,是以你能看見它。

看最後一行代碼,它在顯示面闆中輸出了一段奇怪的字元串:

這一行代碼是将整個對象輸出到了顯示面闆。注意顯示面闆是這樣顯示的:

因為對象沒有可顯示的字元串,是以trace語句就自動往顯示面闆輸出表明對象是bluecircle的執行個體的字元串。

2.2.2 攪亂顯示隊列

現在你更新一下代碼來進一步了解顯示隊列是如何工作的。

1.把代碼改成這樣:

當你在第二行代碼前加上雙斜杠時,你正在做的操作我們稱之為“注釋”。在下一節你會了解到更多關于注釋的知識,現在先記住這兩個斜杠讓這段代碼不在起作用,flash運作時會忽略掉這一行。注意代碼現在變成了灰色,這是注釋的預設顔色(圖2.8)。

《ActionScript 3.0基礎教程》——2.2 顯示隊列概述

mycircle對象因為缺少了addchild語句,沒有被加入顯示隊列。

2.運作代碼,你會看見一個空的頁面。

檢查顯示面闆,你會看見trace還是輸出了同樣的内容,這是因為對象是存在的,隻是沒有被放入顯示隊列中(圖2.9)。

《ActionScript 3.0基礎教程》——2.2 顯示隊列概述

這是非常多新手都會犯的的錯誤,建立了新的執行個體對象,忘記把它加入顯示隊列,你會發現運作程式時沒有任何錯誤,因為對象是存在的,但是你忘了告訴flash要把它顯示出來。

3.删除雙斜杠,把addchild語句還原。

4.再次運作程式,你會重新在頁面中看見圓圈。

2.2.3 改變動态建立的對象的屬性

如果你想把對象放在你想要的位置,你可以在對象被建立後設定x,y屬性的值。

1.更新代碼,把指派語句放在對象被new語句建立之後。

2.運作代碼,對象被顯示在了150,100位置(圖2.10)。

《ActionScript 3.0基礎教程》——2.2 顯示隊列概述

繼續閱讀