隨著一些相關(guān)資料對as3.0的介紹,有人可能認(rèn)為它是另一種語言.它的根本改變在哪呢,它是什么呢?現(xiàn)在我們要放松一點.如果你熟知as2.0,那么它的變化并不是很大,甚至增加了一些命令你可以使用。
從我們第一眼看as3.0,它并不是一個全新的語言,它的架構(gòu)要好于AS2.0,你將從FLASH8開始發(fā)現(xiàn)這些.任何東西都有自已的類和整潔的子類.類的繼承關(guān)系看起來很復(fù)雜,但是它卻是很容易理解。
主要的改變:
1、不在有_global范圍了,但是你可以通過在預(yù)先的public,private和internal里,使用”namespace”來創(chuàng)建你自已的命名。
2、int/uint. 新的數(shù)據(jù)類型來描述非浮點數(shù),這項增加可以使flash與其它程序語言同步,并且解決一些使用java和AMF/Flash Remoting令人頭痛的問題。
3、你不能在在時間線上使用命令play()或stop().MovieClip不在是在global的范圍內(nèi)了,你必須通過flash.display.MovieClip來使用它的屬性。
4、正規(guī)標(biāo)準(zhǔn)表達式—-快速搜索操作字符串。
5、新的更簡單的委派(delegate)。
6、DOM3 事件模型——個新的,但是不被熟知的生成和操作事件信息的方法。
7、顯示API列表——圖像根據(jù)新的或更多的邏輯基于類別如Sprites精靈和Shapes形體被細(xì)分。
8、在也不需要指定depth深度數(shù)值給對象. Depth管理類現(xiàn)在會自動控制(基于API列表)并內(nèi)建于flash player內(nèi).新的方法提供了對對象z-order也就是Z軸的操作。
9、Final/protected關(guān)鍵詞.—防止你的類或函數(shù)被覆寫。
10、新的簡單的XML元素及屬性使用E4X。
11、ArgumentError 類.——使用此類可以避免函數(shù)調(diào)用了不相符合的參數(shù)時所產(chǎn)生的錯誤。
12、Package 關(guān)鍵詡—-如果你不知道pagckage是什么,不要擔(dān)心,當(dāng)你在做大的項目時你會慢慢喜歡上它。
13、被用在數(shù)據(jù)輸入輸出接口的ByteArray提供方法和屬性來優(yōu)化讀,寫,和二進制數(shù)據(jù)。
低級別—異常
異常處理對于FLASH開發(fā)人員來說路還較長,如果一個數(shù)值超出新的int/unit數(shù)據(jù)類型,一個錯誤就會被顯示出來.有些類似于JAVA.你必須要想辦法解決這些問題,否則FLASH程序可能就會垮臺.如果一些東西在AS1和AS2中失效,flash player可能會很友好的忽略掉,在FLASH8中,你可能已經(jīng)通過使用file upload看的了新的究錯能力,它需要一系列事件來顯示上載進程和緩存錯.使用AS3,這些是工作在一個低級別的狀態(tài)。
異?赡軙l(fā)生幾個地方,例如:使用As3.0,你需要查看你的內(nèi)存的最近使用狀況,MemoryError是一個新的異常,當(dāng)內(nèi)存尋址失敗時,它就會通過AVM2虛擬機顯示錯識.其它的異常為EOFError,illegalOperatinError,IOError,ScriptTimeoutError和StackOverflowError。
想一下上面這些內(nèi)容,之前許多是JAVA等其它語言專用的,你可以通過StringBuilder類看到,它來自java類StringBuffer可以允許我們很容易的操作字符.終上所述,我必須說新的AS3類的結(jié)構(gòu)看起來非常好.有不同背景的程序員看到FLASH就會說我知道它是怎么做的,我認(rèn)為我們可以說actionscript已經(jīng)過去了,它的童年過去了,青年時代剛剛到來。
新的命令
可能有更多的新命令,這里面例出一些發(fā)現(xiàn)到的。
Sound(聲音)
leftPeak / rightPeak Property——當(dāng)前聲音的右聲道振幅,從0到1
isBuffering : Boolean [read-only]——返回外緩沖MP3的狀態(tài)
soundBufferTime : uint——聲音在流式播放前緩沖的秒數(shù)
System(系統(tǒng))
vmVersion : String [read-only]——當(dāng)前安裝的ActionScript虛擬機的版本
totalMemory : uint [read-only]——報告當(dāng)前使用的內(nèi)存數(shù)量:System.html
Debugging(調(diào)試)
getClassByName(name:String):Class——返回指定名稱類對象的引用
describeType(value:Object):XML——xml對象產(chǎn)物,用來描述actionscript對象參數(shù)的方法。
ps:看來As3.0并沒有想象中的變化那么大,不過先是FLASH8,接著FLEX2,AS3.0,macroemdia的腳步是越走越快。