Flash AS3.0入門教程
Flash在電腦中是最常用的軟件,那么要如何去學(xué)好Flash呢?下面是陽光網(wǎng)整理的Flash AS3.0入門教程,希望對你有所幫助。
Flash AS3.0入門教程一:
Flash AS3.0入門教程-新建一個(gè)類
創(chuàng)建在項(xiàng)目中使用的類的過程可能令人望而生畏。但是,此過程中更難的部分是設(shè)計(jì)類,即
確定類中將包含的方法、屬性和事件。
1. 請考慮一下該類的實(shí)例將在應(yīng)用程序中扮演的角色。通常,對象擔(dān)任以下三種角色之一:
■ 值對象:這些對象主要用作數(shù)據(jù)的容器 — 也就是說,它們可能擁有若干個(gè)屬性和很
少的幾個(gè)方法(有時(shí)沒有方法)。值對象通常是明確定義的項(xiàng)目的代碼表示,例如音
樂播放器應(yīng)用程序中的 Song 類(表示單個(gè)實(shí)際的歌曲)或 Playlist 類(表示概念
上的一組歌曲)。
■ 顯示對象:它們是實(shí)際顯示在屏幕上的對象。例如,用戶界面元素(如下拉列表或狀
態(tài)顯示)和圖形元素(如視頻游戲中的角色)等等就是顯示對象。
■ 應(yīng)用程序結(jié)構(gòu):這些對象在應(yīng)用程序執(zhí)行的邏輯或處理方面扮演著廣泛的支持角色。
例如,在仿生學(xué)中執(zhí)行某些計(jì)算的對象;在音樂播放器應(yīng)用程序中負(fù)責(zé)刻度盤控件與
音量顯示之間的.值同步的對象;管理視頻游戲中的規(guī)則的對象;或者在繪畫應(yīng)用程
序中加載保存的圖片的對象。
2. 確定類所需的特定功能。不同類型的功能通常會成為類的方法。
3. 如果打算將類用作值對象,請確定實(shí)例將要包含的數(shù)據(jù)。這些項(xiàng)是很好的候選屬性。
4. 由于類是專門為項(xiàng)目而設(shè)計(jì)的,因此最重要的是提供應(yīng)用程序所需的功能;卮鹣铝袉
題可能會對您很有幫助:
■ 應(yīng)用程序?qū)⒋鎯Α⒏櫤吞幚砟男┬畔?確定這些信息有助于您識別可能需要的值對
象和屬性。
■ 需要執(zhí)行哪些操作 — 例如,在應(yīng)用程序首次加載時(shí),在單擊特定的按鈕時(shí),在影片
停止播放時(shí),分別需要執(zhí)行哪些操作?這些是很好的候選方法(如果“動作”僅涉
及更改單個(gè)值,則是很好的候選屬性)。
■ 對于任何給定的動作,要執(zhí)行該動作,該類需要了解哪些信息?這些信息將成為方法
的參數(shù)。
■ 隨著應(yīng)用程序開始工作,應(yīng)用程序的其它部分需要了解類中的哪些內(nèi)容將發(fā)生更改?
這些是很好的候選事件。
5. 如果有一個(gè)現(xiàn)有的對象與您需要的對象類似,只是缺少某些您需要添加的一些額外功
能,應(yīng)考慮創(chuàng)建一個(gè)子類(在現(xiàn)有類的功能的基礎(chǔ)之上構(gòu)建的類,不需要定義它自己的
所有功能)。例如,如果您希望創(chuàng)建一個(gè)將作為屏幕上的可視對象的類,可將一個(gè)現(xiàn)有顯
示對象(如 Sprite 或 MovieClip)的行為用作該類的基礎(chǔ)。在這種情況下,MovieClip
(或 Sprite)是“基類”,而您的類是該類的擴(kuò)展。有關(guān)創(chuàng)建子類的詳細(xì)信息,請參閱
編寫類的代碼
一旦制訂了類的設(shè)計(jì)計(jì)劃,或至少對該類需要跟蹤哪些信息以及該類需要執(zhí)行哪些動作有了
一定了解后,編寫類的實(shí)際語法就變得非常簡單了。
下面是創(chuàng)建自己的 ActionScript 類的最基本步驟:
1. 在特定于 ActionScript 的程序(如 Flex Builder 或 Flash)、通用編程工具(如
Dreamweaver)或者可用來處理純文本文檔的任何程序中打開一個(gè)新的文本文檔。
2. 輸入 class 語句定義類的名稱。為此,輸入單詞 public class,然后輸入類名,后跟一
個(gè)左大括號和一個(gè)右大括號,兩個(gè)括號之間將是類的內(nèi)容(方法和屬性定義)。例如:
public class MyClass
{
}
單詞 public 表示可以從任何其它代碼中訪問該類。
3. 鍵入 package 語句以指示包含該類的包的名稱。語法是單詞 package,后跟完整的包名
稱,再跟左大括號和右大括號(括號之間將是 class 語句塊)。例如,我們將上一步中
的代碼改為:
package mypackage
{
public class MyClass
{
}
}
4. 使用 var 語句,在類體內(nèi)定義該類中的每個(gè)屬性;語法與用于聲明任何變量的語法相同
(并增加了 public 修飾符)。例如,在類定義的左大括號與右大括號之間添加下列行將
創(chuàng)建名為 textVariable、numericVariable 和 dateVariable 屬性:
public var textVariable:String = "some default value";
public var numericVariable:Number = 17;
public var dateVariable:Date;
5. 使用與函數(shù)定義所用的相同語法來定義類中的每個(gè)方法。例如:
■ 要?jiǎng)?chuàng)建 myMethod() 方法,應(yīng)輸入:
public function myMethod(param1:String, param2:Number):void
{
// 使用參數(shù)執(zhí)行某個(gè)操作
}
■ 要?jiǎng)?chuàng)建一個(gè)構(gòu)造函數(shù)(在創(chuàng)建類實(shí)例的過程中調(diào)用的特殊方法),應(yīng)創(chuàng)建一個(gè)名稱與
類名稱完全匹配的方法:
public function MyClass()
{
// 為屬性設(shè)置初始值
// 否則創(chuàng)建該對象
textVariable = "Hello there!";
dateVariable = new Date(2001, 5, 11);
}
如果沒有在類中包括構(gòu)造函數(shù)方法,編譯器將自動在類中創(chuàng)建一個(gè)空構(gòu)造函數(shù)(沒有
參數(shù)和語句)。
您還可以定義其它幾個(gè)類元素。這些元素更為復(fù)雜。
■ “存取器”是方法與屬性之間的一個(gè)特殊交點(diǎn)。在編寫代碼來定義類時(shí),可以像編寫方法
一樣來編寫存取器,這樣就可以執(zhí)行多個(gè)動作(而不是像在定義屬性時(shí)那樣,只能讀取
值或賦值)。但是,在創(chuàng)建類的實(shí)例時(shí),可將存取器視為屬性 — 僅使用名稱來讀取值或
賦值。
■ ActionScript 中的事件不是使用特定的語法來定義的。應(yīng)使用 EventDispatcher 類的功
能來定義類中的事件,以便跟蹤事件偵聽器并將事件通知給它們。
有關(guān)組織類的一些建議
與早期的 ActionScript 版本不同,ActionScript 3.0 沒有一個(gè)文件對應(yīng)一個(gè)類的限制,即不
限制每個(gè)文件只能使用一個(gè)類。使用 ActionScript 3.0,您可以將多個(gè)類的源代碼保存到單
個(gè) .as 文件中。在某些情況下,將多個(gè)類包裝到單個(gè)源文件中可能看似比較方便,但通常而
言,這被認(rèn)為是不好的編程習(xí)慣,原因有二:
■ 如果將多個(gè)類包裝到一個(gè)大文件中,則重用每個(gè)類將非常困難。
■ 當(dāng)文件名與類名不對應(yīng)時(shí),找到特定類的源代碼將非常困難。
由于以上原因,Adobe 建議您始終將每個(gè)類的源代碼保存在其自己的文件中,并為文件指定
與類相同的名稱。
【Flash AS3.0入門教程】相關(guān)文章: