日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ActionScript3学习笔记2-包

發(fā)布時間:2023/12/2 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ActionScript3学习笔记2-包 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

在 ActionScript 3.0 中,包是用命名空間實現(xiàn)的,但包和命名空間并不同義。在聲明包時,
可以隱式創(chuàng)建一個特殊類型的命名空間并保證它在編譯時是已知的。顯式創(chuàng)建的命名空間在
編譯時不必是已知的。
下面的示例使用 package 指令來創(chuàng)建一個包含單個類的簡單包:
package samples
{
??? public class SampleCode
?? {
??????? public var sampleGreeting:String;
??????? public function sampleFunction()
??????? {
????????????? trace(sampleGreeting + " from sampleFunction()");
??????? }
?? }
}
在本例中,該類的名稱是 SampleCode。由于該類位于 samples 包中,因此編譯器在編譯
時會自動將其類名稱限定為完全限定名稱:samples.SampleCode。編譯器還限定任何屬性
或方法的名稱,以便 sampleGreeting 和 sampleFunction() 分別變成
samples.SampleCode.sampleGreeting 和 samples.SampleCode.sampleFunction()。
許多開發(fā)人員(尤其是那些具有 Java 編程背景的人)可能會選擇只將類放在包的頂級。但是,
ActionScript 3.0 不但支持將類放在包的頂級,而且還支持將變量、函數(shù)甚至語句放在包的頂
級。此功能的一個高級用法是,在包的頂級定義一個命名空間,以便它對于該包中的所有類均
可用。但是,請注意,在包的頂級只允許使用兩個訪問說明符:public 和 internal。Java 允
許將嵌套類聲明為私有,而 ActionScript 3.0 則不同,它既不支持嵌套類也不支持私有類。
但是,在其它許多方面,ActionScript 3.0 中的包與 Java 編程語言中的包非常相似。從上一
個示例可看出,完全限定的包引用點運算符 (.) 來表示,這與 Java 相同??梢杂冒鼘⒋a組
織成直觀的分層結(jié)構(gòu),以供其他程序員使用。這樣,您就可以將自己所創(chuàng)建的包與他人共享,
還可以在自己的代碼中使用他人創(chuàng)建的包,從而推動了代碼共享。
使用包還有助于確保所使用的標識符名稱是唯一的,而且不與其它標識符名稱沖突。事實
上,有些人認為這才是包的主要優(yōu)點。例如,假設(shè)兩個希望相互共享代碼的程序員各創(chuàng)建了
一個名為 SampleCode 的類。如果沒有包,這樣就會造成名稱沖突,唯一的解決方法就是重
命名其中的一個類。但是,使用包,就可以將其中的一個(最好是兩個)類放在具有唯一名
稱的包中,從而輕松地避免了名稱沖突。

創(chuàng)建包
ActionScript 3.0 在包、類和源文件的組織方式上具有很大的靈活性。早期的 ActionScript
版本只允許每個源文件有一個類,而且要求源文件的名稱與類名稱匹配。 ActionScript 3.0
允許在一個源文件中包括多個類,但是,每個文件中只有一個類可供該文件外部的代碼使
用。換言之,每個文件中只有一個類可以在包聲明中進行聲明。您必須在包定義的外部聲明
其它任何類,以使這些類對于該源文件外部的代碼不可見。在包定義內(nèi)部聲明的類的名稱必
須與源文件的名稱匹配。
ActionScript 3.0 在包的聲明方式上也具有更大的靈活性。在早期的 ActionScript 版本中,
包只是表示可用來存放源文件的目錄,您不必用 package 語句來聲明包,而是在類聲明中將
包名稱包括在完全限定的類名稱中。在 ActionScript 3.0 中,盡管包仍表示目錄,但是它現(xiàn)
在不只包含類。在 ActionScript 3.0 中,使用 package 語句來聲明包,這意味著您還可以
在包的頂級聲明變量、函數(shù)和命名空間,甚至還可以在包的頂級包括可執(zhí)行語句。如果在包
的頂級聲明變量、函數(shù)或命名空間,則在頂級只能使用 public 和 internal 屬性,并且每
個文件中只能有一個包級聲明使用 public 屬性 (無論該聲明是類聲明、變量聲明、函數(shù)聲
明還是命名空間聲明)。
包的作用是組織代碼并防止名稱沖突。您不應(yīng)將包的概念與類繼承這一不相關(guān)的概念混淆。
位于同一個包中的兩個類具有共同的命名空間,但是它們在其它任何方面都不必相關(guān)。同
樣,在語義方面,嵌套包可以與其父包無關(guān)。

導(dǎo)入包
如果您希望使用位于某個包內(nèi)部的特定類,則必須導(dǎo)入該包或該類。這與 ActionScript 2.0
不同,在 ActionScript 2.0 中,類的導(dǎo)入是可選的。
以本章前面的 SampleCode 類示例為例。如果該類位于名為 samples 的包中,那么,在使
用 SampleCode 類之前,您必須使用下列導(dǎo)入語句之一:
import samples.*;
或者
import samples.SampleCode;
通常,import 語句越具體越好。如果您只打算使用 samples 包中的 SampleCode 類,則應(yīng)只導(dǎo)
入 SampleCode 類,而不應(yīng)導(dǎo)入該類所屬的整個包。導(dǎo)入整個包可能會導(dǎo)致意外的名稱沖突。
還必須將定義包或類的源代碼放在類路徑 內(nèi)部。類路徑是用戶定義的本地目錄路徑列表,它
決定了編譯器將在何處搜索導(dǎo)入的包和類。類路徑有時稱為 “生成路徑”或“源路徑”。
在正確地導(dǎo)入類或包之后,可以使用類的完全限定名稱 (samples.SampleCode),也可以只
使用類名稱本身 (SampleCode)。
當同名的類、方法或?qū)傩詴?dǎo)致代碼不明確時,完全限定的名稱非常有用,但是,如果將它
用于所有的標識符,則會使代碼變得難以管理。例如,在實例化 SampleCode 類的實例時,
使用完全限定的名稱會導(dǎo)致代碼冗長:
var mySample:samples.SampleCode = new samples.SampleCode();

轉(zhuǎn)載于:https://www.cnblogs.com/beilon/archive/2008/05/03/1179982.html

總結(jié)

以上是生活随笔為你收集整理的ActionScript3学习笔记2-包的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。