Why AS3

来自Blueidea
enc0717讨论 | 贡献2011-05-03T03:05:31的版本 AS3並不是必要的,但卻是充分的

(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转至: 导航搜索


為甚麼要使用AS3。


AS3有何不同

 這不是單純的語言上的改變。

ActionScript3是一種相對更純的OOP(面向對象語言)
要適用ActionScript3來做開發。首先需要理解機制的區別。


最顯而易見的跨度。

最初我們在Flash中寫代碼的方式很自由。有3種地方可以書寫代碼。
FlashPlatform Numbers1.jpg時間軸上
asOnTimeLine.png
FlashPlatform Numbers2.jpg外部文件中
asInFile.png
FlashPlatform Numbers3.jpg顯示對象上
asOnObject.png

在ActionScript3的fla文件中。現在只支持FlashPlatform Numbers1.jpgFlashPlatform Numbers2.jpg
並且伴隨著跳針無法同步訪問元素的問題。


這看起來是變的麻煩了呢。的確是。
首先要達成一個共識

 麻煩不是顯而易見的


AS2和AS3的麻煩可以歸納為

 顯而易見的麻煩和長久持續的麻煩

為了說明這點,可以從以下圖直觀的闡明這個歸納。
FlashPlatform WhyAS3.png

AS3並不是必要的,但卻是充分的

速度方面:

 運行在AVM2上的ActionScript3相比運行在AVM1上的ActionScript2有了超過10倍的提速。
 (AVM:actionscript virtual machine)
 這個提速度表現在
 FlashPlatform Numbers1.jpg新的機制帶來的10倍速度提升。
 FlashPlatform Numbers2.jpg新的架構導致開發上可是使用更高效的API來編寫。
 FlashPlatform Numbers3.jpg使用alchemy或者haxe來進行運行在AVM上匯編一級加速。(慎)

可讀性:

 對於可讀,其實對於哪個語言來說都沒有特別大的差別,
 只能說,語言本身的局限導致很多玩家不太注意對程式的可讀的重視。
 ActionScript3本身架構的完善使得玩家需要去按照一種更為規範的方式編寫程式從而帶來更高的可讀性,
 設計資源和代碼的分離。
 經常在AS2的fla文件,幾個月後作者自己都看不懂自己當時以甚麼思路編寫的。
 因為通常我們在編寫一個AS2的Flash時,以線性思維去考慮,這條線直接指向最終的效果。
 然而這種線型是單方向的,這意味著如果發生更變將會難於實行。
 
 因此使用ActionScript3,你需要一些開發方式上的轉變,讓思維以結構化的方式來思考,這或許會耗費玩家很多精力,
 對於並不是系統學習過OOP語言的AS2玩家來說,但是這個精力耗費是一勞永逸的,一旦掌握了這種開發方式,
 您就會在一個長期中獲得回報。
 當然,正如所說的,這並不是必須的,作為玩家,您可以自行斟酌和選擇甚麼時候來嘗試AS3的開發,或者是徹底的轉變。

架構和標準化:待編輯

 ActionScript相對來說是更為純的OOP語言。所以它擁有OOP語言的優點,
 *利於擴展封裝
 *更加合理的架構帶來更好的執行速度
 *更多的對其他語言和連機調用的支持。
 *重用性的增強可以節省很多重複的勞動時間
 
 一個顯而易見的例子就是AS2中MovieClip單挑打遍天下。
 現在在AS3中被劃分成為以一條繼承鍊,MovieClip從Sprite得到繼承。
 也就說。如果你只需要一針的一個顯示容器,而不是需要一段動畫。那麼使用Sprite就可以了,就沒有必要如此奢侈使用MovieClip了。
 MovieClip毫無疑問的要幹掉更多的資源。
 
 那麼,再提供了更多選擇的情況下,作為玩家您可以依據需要選擇不同的類和方法,
 但要熟練的駕馭新的架構您需要理解一些關於面向對象編程的內容,但我衷心的希望那僅僅是因為需要而理解來使用,
 而不要極端的患有面向對象綜合症。

Aser的奇怪稱謂:待編輯

所帶來的負面影響關於設計:待編輯