類和面向?qū)ο缶幊?/strong>
類(Class)和面向?qū)ο?Object Oriented),對于有些讀者來說可能還沒接觸過而有些讀者可能已經(jīng)在 AS (或其它語言) 中使用類很多年了,為了讓大家都能學(xué)會,我會扼要的介紹一下這些基礎(chǔ)知識。就算是 AS 2 的 OOP 專家也希望能略讀下這一段,因為 AS 3.0 的工作原理確實發(fā)生了很大的變化。如果你說你從沒用過類,那你就錯了,只要你在 Flash 中寫過代碼,那么實際上就已經(jīng)使用了類。類可以簡單理解為一種對象, MovieClip 就是影片剪輯的類,而文本框、影片剪輯、按鈕、字符串和數(shù)值等都有它們自己的類。
一個類最基本的兩個部分:屬性(數(shù)據(jù)或信息),行為(動作或它能做的事)。屬性(Property)指用于保存與該類有關(guān)的信息變量,行為(Behavior)就是指函數(shù),如果一個函數(shù)是這個類中的一部分,那么我們就稱它為方法(Method)。
一個基本的類:
常用 Flash 的朋友都知道,我們可以在庫中創(chuàng)建一個元件,用這個元件可以在舞臺上創(chuàng)建出很多的實例。與元件和實例的關(guān)系相同,類就是一個模板,而對象(如同實例)就是類的一個特殊表現(xiàn)形式。下面來看一個類的例子:
package { public class MyClass { public var myProperty:Number = 100; public function myMethod() { trace("I am here"); } } }
先來說明一下這段代碼。在這里有些新的知識,對于 AS 2 老手也如此:包的聲明。包(Package) ,作用就是把相關(guān)的類進(jìn)行分組。知道這一點就夠了,我們不再進(jìn)行深入的討論,本書的示例甚至不會用到包。Package 這個關(guān)鍵字和一對大括號是必需有的,我們理解為默認(rèn)包,緊隨其后的就是類的定義。 另一個變化是 AS3.0 中的類擁有了訪問關(guān)鍵字。訪問關(guān)鍵字是指:一個用來指定其它代碼是否可訪問該代碼的關(guān)鍵字。 public (公有類) 關(guān)鍵字指該類可被外部任何類的代碼訪問。本書中所有示例的類都是 public 的。在深入學(xué)習(xí)了 AS 3.0 后,我們會發(fā)現(xiàn)不是所有類都是公有的,甚至還有多重的類,這些內(nèi)容超出了本書的談?wù)摲秶?/p>
本例中我們可以看到,這個類的名字為 MyClass,后面跟一對大括號。在這個類中有兩種要素,一個是名為 myProperty 的變量,另一個是名為 myMethod 的函數(shù)。
包(Package)
包主要用于組織管理類。包是根據(jù)類所在的目錄路徑所構(gòu)成的,并可以嵌套多層。包名所指的是一個真正存在的文件夾,用 “.”進(jìn)行分隔。例如,有一個名為 Utils 的類,存在于文件夾 com/ friendsofed/ makingthingsmove/ 中(使用域名作為包名是一個不成文的規(guī)定,目的是保證包名是唯一的)。這個類就被寫成 com.friendsofed.makingthingsmove.Utils。 在 AS 2 中,使用整個包名來創(chuàng)建一個類,例如:
class com.friendsofed.makingthingsmove.Utils { } 在 AS 3 中,包名寫在包的聲名處,類名寫類的聲名處,例如: package com.friendsofed.makingthingsmove{ public class Utils { } }
導(dǎo)入(Import)
想象一下,每次要使用這個類的方法時都要輸入 com.friendsofed.makingthingsmove.Utils,是不是太過煩瑣太過死板了。別擔(dān)心,import 語句可以解決這個問題。在這個例子中,可以把下面這句放在 package 中類定義的上面: import com.friendsofed.makingthingsmove.Utils;。
出處:藍(lán)色理想
責(zé)任編輯:bluehearts
上一頁 下一頁 ActionScript 3.0 動畫基礎(chǔ) [2]
◎進(jìn)入論壇RIA設(shè)計與應(yīng)用版塊參加討論
|